はい、セルフホスティングでは、ご利用者様ご自身で設定ができます。その際には 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 でアクセスをして、接続が可能かをご確認ください。