常時SSL化の設定手順を教えて下さい

公開日 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 on;
    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