nginxとLet's Encryptで常時SSL化対応する
まずホストするディレクトリを用意する
# cd /wwwroot
# mkdir example.co.jp
# chmod 755 /wwwroot/example.co.jp
作成したディレクトリに動作確認用のコンテンツをコピーしておく
動作確認用のコンテンツではなく本番用のコンテンツでも構わない
環境確認用の設定ファイルを書く
# nano /etc/nginx/sites-available/example.co.jp
server {
listen 80;
server_name example.co.jp;
root /wwwroot/example.co.jp;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
# ln -s /etc/nginx/sites-available/example.co.jp /etc/nginx/sites-enabled
# /etc/init.d/nginx configtest
[ ok ] Testing nginx configuration:.
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# /etc/init.d/nginx reload
# nginx -s reload
正しくコンテンツを返しているかテストする(ローカル)
# curl http://localhost/ -H "Host: example.co.jp"
DNSレコードを書き換える
無意味にnslookup
やdig
をポチポチしながらDNSの反映をひたすら待つ
正しくコンテンツを返しているかテストする(インターネット)
# curl http://example.co.jp/
Let’s EncryptのSSL証明書を取得する
# certbot certonly --standalone -d example.co.jp --pre-hook "service nginx stop" --post-hook "service nginx start"
常時SSL対応の設定ファイルに書き換える
# nano /etc/nginx/sites-available/example.co.jp
server {
listen 80;
server_name example.co.jp;
return 301 https://example.co.jp$request_uri;
}
server {
listen 443 ssl;
server_name example.co.jp;
root /wwwroot/example.co.jp;
index index.html;
location / {
try_files $uri $uri/ =404;
}
ssl on;
ssl_certificate /etc/letsencrypt/live/example.co.jp/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.co.jp/privkey.pem;
}
作成したディレクトリに本番用のコンテンツをコピーする
既に本番用のコンテンツがはいっているならなにもしなくてもよい
正しくコンテンツを返しているかブラウザでテストする
ブラウザでhttp://example.co.jp
にアクセスしたときに、ちゃんとhttps://example.co.jp
へのリダイレクトされているか確認する
竹内電設は、大阪府下を中心に中小規模の組織がITシステムを効果的に活用するための、お手伝いをさせていただいております
© 2023 竹内電設; all rights reserved.