
geralt / Pixabay
Let’s EncryptのSSL証明書取得
過去記事参照。
nginxの設定
設定ファイルを開く。
vi /etc/nginx/conf.d/default.conf
下記を追記する。
server{
listen 443;
server_name (ドメイン名);
charset utf-8;
root /usr/share/nginx/html;
index index.php;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE+RSAGCM:ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!aNULL!eNull:!EXPORT:!DES:!3DES:!MD5:!DSS;
ssl_certificate /etc/letsencrypt/live/(ドメイン名)/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/(ドメイン名)/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass /var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
SSLのプロトコルはTLSv1 TLSv1.1 TLSv1.2のみに限定。
暗号化方式はセキュリティ強度の低いものを除く。
httpはhttpsへ転送
server {
listen 80;
server_name (ドメイン名);
return 301 https://$host$request_uri;
...
nginxの再起動(設定反映)
service nginx restart
Let’s EncryptのSSL証明書更新設定
設定ファイルを開く。
vi /etc/letsencrypt/renewal/(ドメイン名).conf
下記を修正する。
# renew_before_expiry = 30 days
version = 0.13.0
archive_dir = /etc/letsencrypt/archive/(ドメイン名)
cert = /etc/letsencrypt/live/(ドメイン名)/cert.pem
privkey = /etc/letsencrypt/live/(ドメイン名)/privkey.pem
chain = /etc/letsencrypt/live/(ドメイン名)/chain.pem
fullchain = /etc/letsencrypt/live/(ドメイン名)/fullchain.pem
# Options used in the renewal process
[renewalparams]
authenticator = webroot
installer = None
account = ************************
webroot_path = /usr/share/nginx/html,
[[webroot_map]]
(ドメイン名) = /usr/share/nginx/html
cronの設定
apacheリロードしていたところをnginxへ変更する。
crontab -e
0 6 * * 0 /root/certbot-auto renew -q --no-self-upgrade --post-hook "service nginx reload"