最初goのacme v2クライアントでやる記事が引っかかったりして焦りましたが、
certbotでもできるみたいで助かりました。
概ねこの記事の通り。
Let's Encrypt (certbot) でワイルドカード証明書できた! - Qiita
コメントにある通り、書いてある手順通りにやるとサブドメインが付いているドメインの証明書しか発行されないので、サブドメイン一切なしのドメインも運用しているなら -d example.com -d *.example.com とかするといい感じでした。
コメントにある通り、書いてある手順通りにやるとサブドメインが付いているドメインの証明書しか発行されないので、サブドメイン一切なしのドメインも運用しているなら -d example.com -d *.example.com とかするといい感じでした。
あと、dnsチャレンジでドメインの所有者であることを証明しようとすると、2度まったく同じ文面でTXTレコードの値だけ違うものが2度表示されますが、これは間違いではなくもう一度DNSの設定を変更して続行すれば証明書が発行されるみたいです。何かミスったのかと思った。
初めてcertbotを設定するならcertbotを定期実行する指定が別途必要ですがまだ着手してないので設定したあとまた追記予定。
nginx側の設定は特に変わったことしないで大丈夫です。
NginxでのSSL設定の細かい意味
ということで、以下を満たすnginxサーバーの設定ができました。
ということで、以下を満たすnginxサーバーの設定ができました。
- アクセスされたときに /var/www/[ホスト名] をドキュメントルートにする
- phpをつかう
- ssl証明書有効
- httpアクセスはhttpsにリダイレクト
#example.conf
#httpアクセスをhttpsにリダイレクト
server {
listen 80;
server_name .example.com;
return 301 https://$host$request_uri;
}
server {
server_name .example.com;
ssl_certificate [証明書の格納ディレクトリ]/fullchain.pem;
ssl_certificate_key [証明書の格納ディレクトリ]/privkey.pem;
#ssl有効
include /etc/nginx/conf.d/ssl.ext;
#php有効
include /etc/nginx/conf.d/php.ext;
#アクセスされたドメインをdocument rootにする
root /var/www/$host/;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
#ssl.ext
listen 443;
ssl on;
ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK";
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
#php.ext
index index.php index.html index.htm;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
}
0 件のコメント:
コメントを投稿