Dark Mode Light Mode

【Conoha】CentOS7+Nginxの環境にLet’s Encryptを入れてhttpsに対応させてみた

前回、VPSに「CentOS7+Nginx+PHP」の環境を構築しました。
今回はLet’s Encryptを使用して、無料でサイトをhttpsに対応させたいと思います。

0. Let’s Encryptをインストールするにはepelレポジトリが必要です。epelレポジトリをまだ導入していない場合は、前回の記事を参考にしてインストールしてください。

1.まず証明書発行に必要なクライアントをインストールします。

yum install certbot

2.ドメイン名でNginxのテストページへアクセスできることを確認します。ドメインを設定していない場合は、DNS設定からVPSのIPアドレスをAレコードに登録してください。

3.以下のコマンドを実行してクライアントを実行します。

certbot certonly

4.メニュー画面が表示されるので1を選択してOKを選択します

5.メールアドレスを入力します

6.利用規約を読み、同意(Agree)します。

7.https化したいドメインをコンマで区切って指定します。一度に複数指定出来るので、持っているサブドメインを追記しておくと良いでしょう。

(例 : takumi9942.net,aaa.takumi9942.net,bbb.takumi9942/net,ccc.takumi9942.net)

(注:サブドメインを追加するには、あらかじめそのホスト名のAレコードをDNSに登録しておく必要があります。)

8.表示されたドメインのルートディレクトリを設定します。「Enter a new webroot」を選択して場所を追加します。

9.ルートディレクトリへの絶対パスを入力します。(Nginxの標準Rootディレクトリは/usr/share/nginx/html/)

10.複数ドメインを記述した場合はそれぞれのルートディレクトリを指定します。

11.以下の画面が表示されたら、証明書の発行は完了です。

12.Nginxに証明書を設定します。

#標準のキーは短いので、長いキーを生成しておきます。
openssl dhparam 2048 -out /任意のパス/dhparam.pem
vim /etc/nginx/nginx.conf
#設定ファイルをincludeしてあるかどうか確認します
include /etc/nginx/conf.d/*.conf;
vim /etc/nginx/conf.d/default.conf

#listen443のserverに以下を追記

ssl on;
ssl_certificate "/etc/letsencrypt/live/1番最初に指定したドメイン名/fullchain.pem";
ssl_certificate_key "/etc/letsencrypt/live/1番最初に指定したドメイン名/privkey.pem";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout  10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ここで先程生成したキーを読み込みます
ssl_dhparam /キーを置いたパス/dhparam.pem;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4";
ssl_prefer_server_ciphers on;

13.最後に設定ファイルの文法をチェックし、Nginxを再起動すれば完了です。

nginx -t
systemctl restart nginx

14.自動更新の設定をする前に自動更新が可能であるかを確認します。以下のコマンドを実行し、画像のような出力がされれば正常に設定できています。

certbot renew --dry-run

15.Cronに証明書を自動で更新するように設定しましょう。

crontab -e
MAILTO=""
1 5 * * * certbot renew --quiet
(Cronは「分」「時」「日」「月」「曜日」「実行コマンド」の順番で記述する)

以上でサイトのhttps化は完了です。
VPSだと「Let’s encrypt」を使用すれば無料でhttpsのサイトを作り放題なところがいいですね( ´∀`)

コメントを投稿 コメントを投稿

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

前の投稿

【Conoha】初めてVPSを契約してCentOS7 + Nginx + PHP7の環境を作成してみた

次の投稿

【Conoha】MariaDBとphpMyAdminをインストールしてデータベースを使えるようにしてみた