と、SSLの販売会社から連絡が来ました。
– 2015年6月1日より前に発行され、2017年8月31日以降の有効期限を持つ
– 2016年6月1日より前に発行され、2018年1月18日以降の有効期限を持つ
この際なので、無料で利用できる Let’s Encrypt に変更したいと思います。
以前紹介した、有料のSSLをインストールするよりも簡単です。5分もかからずに終了します。
Let’s Encryptのインストール
sudo curl https://dl.eff.org/certbot-auto -o /usr/bin/certbot-auto sudo chmod 700 /usr/bin/certbot-auto
Let’s Encrypt 証明書の作成
sudo /usr/bin/certbot-auto certonly --webroot -w ドキュメントルート --email メールアドレス --debug -d ドメイン
ドキュメントルート は、対象のドメインが格納されているディレクトリを指定。
メールアドレスにはメール受信出来る メールアドレスを指定。
ドメインには対象のドメインを記述 (wwwがついているドメインはwwwをつけること)。
メールアドレスに確認のメールが届きます。Click this link to confirm your email:と書かれている下のURLをクリックすればOKです。
関連するパッケージが自動で更新・インストールされます。完了すると以下のディレクトリに、鍵と証明書が格納されます。
/etc/letsencrypt/live/先程入力したドメイン/fullchain.pem /etc/letsencrypt/live/先程入力したドメイン/privkey.pem
証明書をサーバーで指定
サーバーの設定ファイル /etc/httpd/conf.d/ssl.conf に以下を記載します。
SSLCertificateFile /etc/letsencrypt/live/先程入力したドメイン/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/先程入力したドメイン/privkey.pem
サーバー再起動
sudo service httpd restart
このままだと、Let’s Encrypt は3ヶ月間で有効期限が切れてしまうため、自動で更新するようにします。
Let’s Encrypt 証明書の自動更新
sudo /usr/bin/certbot-auto renew --post-hook "sudo service httpd restart"
期限があるうちはrenewコマンドはスキップされるので、「Cert not yet due for renewal」とターミナルに表示されればOKです。
cronにrenewコマンドを登録
sudo vim /etc/cron.d/letsencrypt 00 03 * * 1 root /usr/bin/certbot-auto renew --post-hook "service httpd restart"
上記のCronで毎週月曜の03時にrenewコマンドが走ります。
セキュリティを高めるには下記の設定をしましょう。
SSLCipherSuite等の設定を行います。
質問などあればお気軽に!