サーバー情報
【さくらのVPS】
メモリ:8GB
ストレージ:SSD 400GB
CPU:6コア
OS
CentOS7 x86_64
【さくらのVPS】
メモリ:8GB
ストレージ:SSD 400GB
CPU:6コア
CentOS7 x86_64
Webアプリケーションで必須のSSL化を実施します。
今回は無料版として好評な「Let’s Encrypt」を利用します。
Nginxを停止させます。
Nginxを停止させます。
停止していることを確認します。
「Let’s Encrypt」を半自動で設定してくれる Certbot のプログラムを GitHub からダウンロードします。
ダウンロードに備えてディレクトリを移動します。
GitHubからダウンロードを行います。
ダウンロード実施後に、証明書の発行などの設定を行います。
証明書の発行を実施
設定するドメイン名
メールアドレス
利用規約に同意
プログラム実行時に “Yes or No” を尋ねない
“Congratulations!”と表示されれば成功!
作成された証明書をNginxに設定します。
「Let’s Encrypt」のディレクトリを移動します。
「live/」ディレクトリが存在することを確認します。
「▼▼▼/」(ドメイン)のディレクトリが存在することを確認します。
「fullchain.pem」、「privkey.pem」が存在することを確認します。
※SSLの設定で必要なキーファイルの保存場所:/etc/letsencrypt/live/▼▼▼/
作成された証明書をNginxに設定します。
Nginxの設定ファイルを編集します。
server {
listen 80;
server_name ▼▼▼(ホスト名);
location /static {
alias /usr/share/nginx/html/static;
}
location /media {
alias /usr/share/nginx/html/media;
}
location / {
proxy_pass http://unix:/home/☆☆☆/☆☆☆.sock;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 443 ssl;
server_name ▼▼▼(ホスト名);
ssl_certificate /etc/letsencrypt/live/▼▼▼/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/▼▼▼/privkey.pem;
location /static {
alias /usr/share/nginx/html/static;
}
location /media {
alias /usr/share/nginx/html/media;
}
location / {
proxy_pass http://unix:/home/☆☆☆/☆☆☆.sock;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ポート番号をSSL化用の443(HTPS)に変更します。
※実施前にファイアウォールにおいて443番を開放しておいて下さい。
Nginxを再起動させます。
Nginxを再起動させます。
起動状況を確認します。
「https://▼▼▼」にアクセスし、SSLマークがついていればOKです。
SSL証明書は一定期限ごとに更新が必要になるので、更新作業を自動化します。
3ヶ月更新が多いですが、今後90日ごとの更新に変更になります。
そのため、今回はSSL証明書の有効期限(1ヶ月ごと)の証明書更新を自動化設定します。
※更新期限の1か月前に実施しても無効化されるため、更新期間は慎重に決めましょう。
crontabは定期的にジョブを実行するようスケジュールするcronを設定するコマンドです。
crintabのオプション一覧は以下の通りです。
cronを設定します
設定されているcronを表示します
設定されているcronを削除します
cronを設定するユーザーを指定します
00 04 01(hhMMdd):登録したcronを実行する時間を指定します。
この場合だと、「毎月1日の4時00分に実行する」という設定となります。
日時の後には実行したいコマンド(systemctl restart nginx)を指定しています。