Centos7にNginx + Unicornで構築したRedmine3.3をLet's EncryptでSSL化対応
[概要]
Redmineを無料SSLであるLet's Encryptに対応させる
[事前準備]
下記が構築であること
Centos7にNginx + UnicornでRedmine3.3構築方法
[作業内容]
Let's Encrypt クライアントをクローン
$ cd /opt
$ sudo git clone https://github.com/certbot/certbot
Let's Encrypt クライアントで必要なパッケージをインストール
$ cd certbot/
$ sudo ./certbot-auto
Let's Encrypt の設定を追記
$ sudo vi /etc/nginx/conf.d/redmine.conf
$ cd /opt
$ sudo git clone https://github.com/certbot/certbot
$ cd certbot/
$ sudo ./certbot-auto
$ sudo vi /etc/nginx/conf.d/redmine.conf
下記のようにlocation
を追加する。
/etc/nginx/conf.d/redmine.conf
upstream unicorn-redmine {
server unix:/opt/redmine/tmp/unicorn_redmine.sock;
}
server {
listen 80;
server_name Servername;
root /opt/redmine/public;
client_max_body_size 1G;
location / {
try_files $uri/index.html $uri.html $uri @app;
}
location @app {
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 600;
proxy_pass http://unicorn-redmine;
}
error_page 500 502 503 504 /500.html;
location ^~ /.well-known/acme-challenge/ {
root /usr/share/nginx/html;
}
}
nginxの設定反映
$ sudo systemctl restart nginx
証明書取得のためのスクリプトを作成 1
下記を参考に適宜変更してください。
$ sudo vim /opt/letsencrypt.sh
#!/bin/bash
#証明書のドメイン(,区切りで複数のドメインも指定可能)
DOMAIN=example.com
#ドキュメントルート(上のドメインで接続可能である必要がある)
WEBROOT=/var/www/example.com/public_html
#メールアドレス(トラブル時にメールが届く)
EMAIL=[email protected]
/opt/certbot/certbot-auto certonly --webroot -w $WEBROOT -d $DOMAIN -m $EMAIL --agree-tos --non-interactive $*
スクリプトに実行権限付与
$ sudo chmod 755 /opt/letsencrypt.sh
テスト実行
$ sudo /opt/letsencrypt.sh --dry-run
### --dry-run テストで実行する
下記のように表示されれば OK です。
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/gitlab/fullchain.pem. Your cert
will expire on 2016-12-25. To obtain a new or tweaked version of
this certificate in the future, simply run certbot-auto again. To
non-interactively renew *all* of your certificates, run
"certbot-auto renew"
本番実行
$ sudo /opt/letsencrypt.sh
SSL設定ファイル
元からあったredmine.conf
を削除し、ssl設定ファイルを作成する。
$ sudo vim /etc/nginx/conf.d/ssl.redmine.conf
/etc/nginx/conf.d/ssl.redmine.conf
upstream unicorn-redmine {
server unix:/opt/redmine/tmp/unicorn_redmine.sock;
}
server {
listen 443 ssl;
server_name {ドメイン};
ssl_certificate /etc/letsencrypt/live/{ドメイン}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/{ドメイン}/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers AESGCM:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
root /opt/redmine/public;
client_max_body_size 1G;
access_log /var/log/nginx/ssl_access.log;
error_log /var/log/nginx/ssl_error.log;
location / {
try_files $uri/index.html $uri.html $uri @app;
}
location @app {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header http:// https://;
proxy_connect_timeout 60;
proxy_read_timeout 60;
proxy_send_timeout 600;
proxy_pass http://unicorn-redmine;
}
error_page 500 502 503 504 /500.html;
location ^~ /.well-known/acme-challenge/ {
root /usr/share/nginx/html;
}
}
設定ファイル確認
$ sudo nginx -t
設定ファイル反映
$ sudo systemctl restart nginx
[事後確認・作業]
下記にアクセスして表示されるのを確認する
https://{ドメイン}
[参考サイト]
Author And Source
この問題について(Centos7にNginx + Unicornで構築したRedmine3.3をLet's EncryptでSSL化対応), 我々は、より多くの情報をここで見つけました https://qiita.com/0ta2/items/ee0ba72bed560311eb1d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .