はい、セルフホスティングでは、ご利用者様ご自身で設定ができます。その際には SSL 用の設定ファイルの作成とセキュリティグループの変更が必要です。以下に手順を解説します。

なお、Let's Encrypt をご利用される場合は Let's Encrypt は使えますか? をご参照ください。
 
 

Step 1. ssl.default.conf の作成

以下の ssl.default.conf のサンプルを参考いただき、 /etc/nginx/conf.d/ssl.default.conf というファイルを作成してください。
このファイルは root ユーザーのみが作成出来ますので、サーバへ SSH 接続後、 su - でユーザーを変更して作業をしてください。

作業の際、4行目の {your EC2 Instance ID} は、あなたの EC2 インスタンスの ID または バーチャルホストで書き換えてください。
(分からない場合は、/etc/nginx/conf.d/default.conf の同一行をコピーしても大丈夫です)

また、9-10行目は使用したいサーバ証明書・秘密鍵のパスを指定してください。

設定後、以下のコマンドで Nginx を再起動してください。

# service nginx restart

ssl.default.conf のサンプル

server {
    listen      443 default ssl http2;
    server_name _;
    root        /var/www/vhosts/{your EC2 Instance ID};
    index       index.html index.htm;
    charset     utf-8;

    ssl_certificate      /path/to/cert.pem;
    ssl_certificate_key  /path/to/cert.key;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers AESGCM:HIGH:!aNULL:!MD5;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 5m;
   
    access_log  /var/log/nginx/ssl.access.log  main;
    error_log   /var/log/nginx/ssl.error.log;

    include     /etc/nginx/drop;

    add_header X-Cache-Status $upstream_cache_status;
    expires $expires;

    set $mobile "";
    #include /etc/nginx/mobile-detect;

    include     /etc/nginx/wp-front;

    location ~* /(phpmyadmin|myadmin|pma) { access_log off; log_not_found off; return 404; }

    #
    # redirect server error pages to the static page /50x.html
    #
    error_page  502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

  

Step 2. セキュリティグループの変更

続いて、HTTPS で通信ができるようにセキュリティグループを変更します。

AWSマネージメントコンソールのEC2ダッシュボードの「Security Groups」でインスタンスで使用しているセキュリティグループを選択し「Action」から「Edit inbound rules」をクリックします。

設定画面が開いたら HTTP を追加し、「Save」をクリックします。

設定は以上です。

実際に HTTPS でアクセスをして、接続が可能かをご確認ください。

Did this answer your question?