公開日 2019.09.27
更新日 2019.10.02
以下の手順で常時SSL化を行うことができます。
**********************************************************************
1 想定環境
**********************************************************************
[システム]
OS : CentOS 7 (x86_64)
Webサーバ : nginx 1.12
Appサーバ : unicorn 5.4
Database : PostgreSQL 9.5
Ruby : 2.6
Rails : 5.2
[設定]
ドメイン : joruri.example.com
**********************************************************************
2 事前準備
**********************************************************************
CMSの管理画面で「サイト>ドメイン」からサイトURLのプロトコルをhttpsに変更してください。
例:http://joruri.example.com/ → https://joruri.example.com/ に変更
サイトURLのプロトコルを変更することで、https用のバーチャルホストのコンフィグが書き出されます。
出力先:/var/www/joruri/config/nginx/servers/ssl_site_0001.conf
※サイトURLをhttpに戻すと、https用のバーチャルホストのコンフィグが削除されますのでご注意ください。
**********************************************************************
3 設定作業
**********************************************************************
rootユーザーに変更します。
$ su -
※セキュリティ設定は環境に応じて適切に設定してください。
HTTPS設定
証明書に関する設定を追記します。
# mkdir /var/www/joruri/config/nginx/servers/ssl_site_0001.d/
# vi /var/www/joruri/config/nginx/servers/ssl_site_0001.d/ssl.conf
ssl_certificate /xxx/xxx/site_0001.crt;
ssl_certificate_key /xxx/xxx/site_0001.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
※証明書の設定は環境に応じて適切に設定してください。
**********************************************************************
4 Nginx の再起動
**********************************************************************
# nginx -t
# systemctl restart nginx.service
httpsでアクセスし、正常に表示されることを確認してください。
**********************************************************************
5 リダイレクト設定
**********************************************************************
httpへのアクセスをhttpsにリダイレクトする場合は、バーチャルホスト設定にRewriteRuleを追記します。
# mkdir /var/www/joruri/config/nginx/servers/site_0001.d/
# vi /var/www/joruri/config/nginx/servers/site_0001.d/redirect_http.conf
return 301 https://$host$request_uri;
# nginx -t
# systemctl restart nginx.service