Debian9 + Apache + SSL認証"Let's Encrypt"で設定評価「A」を目指した!

前回投稿で、Debian9 + Apacheの環境にSSL認証設定を施してみた。その際、無料のSSL証明書Let's Encryptを用いた。

設定の確認&第三者評価の観点から、SSL環境を評価してくれるサービスを利用した結果、【B】判定。微妙…
「可もなく不可もなく」
「基本的な設定はできているが、もう一つ物足りない…」
の判定と判断したので、【A】以上の判定を目指してみた。

【参考】
SSL認証の評価をしてくれるサイト

# https://www.ssllabs.com/ssltest/analyze.html?d=<ドメイン名>
https://www.ssllabs.com/ssltest/analyze.html?d=hogehoge.net


ゴール

SSL認証評価で【A】評価以上の取得!!

環境

クライアントPC

  • MacOSX 10.13.4

サーバー

  • Debian9
  • Apache/2.4.25 (Debian)
  • certbot 0.10.2

サーバーへSSH接続できることを前提とする。

また、今回はroot権限でそのまま作業を行うが、セキュリティ確保の為にはroot認証は無効化することを推奨する。

サーバーの環境構築とSSH設定、root無効化などの詳細に関しては、
ConoHa VPS の Debian9 に Djangoベースのサービスデプロイしてみた!!〜その①〜
とか
SSH conf を簡単に接続する方法まとめた!
を参照



Step1. 判定結果の確認

SSL認証の評価をしてくれるサイトへ適切なドメインを入力して、評価実行!

# https://www.ssllabs.com/ssltest/analyze.html?d=<ドメイン名>
https://www.ssllabs.com/ssltest/analyze.html?d=hogehoge.net

ConoHaVPS_ssl1

サイト評価の結果、「RSA暗号鍵のサイズ"2048bit"がマイナス評価」ってコメントが出ていた。

確かに、certbot コマンドでSSL情報を生成した際、鍵サイズを設定した記憶がない…ということで、初期値「2048bit」出力だったおいうことが判明。

よって、この点を「4096bit」に更新して試してみる



Step2. SSL認証更新(RSA認証鍵サイズを「4096bit」に…)

上記コメントから、鍵サイズの延伸に対策の糸口を見つめて、SSL認証の差し替えを決定。

certbot renewが、鍵の更新をしてくれるコマンド。

このコマンドは、「有効期限:90日」の判定をして、30日未満だった場合、認証情報を更新してくれる優れもの!!他にも、色々かゆいところに手がとどくオプションを備えているコマンドのようなので、今後このコマンドについても調査&まとめておきたい。

今回は、一先ず評価結果「A」実現のために、既存の認証情報を更新するために使う

certbot renew --force-renew --rsa-key-size 4096

<オプション>
--force-renew : 証明書の有効期限の残りを無視して、過去に発行したすべての証明書を強制的に更新
--rsa-key-size 4096 : 「4096bit」のRSA公開鍵が使用された新しい証明書に更新

この結果、以下の類似メッセージの最後に"success"が出力されれば成功!!

Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/hogehoge.net.conf
-------------------------------------------------------------------------------
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for hogehoge.net
Waiting for verification...
Cleaning up challenges
Generating key (4096 bits): /etc/letsencrypt/keys/0001_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0001_csr-certbot.pem

-------------------------------------------------------------------------------
new certificate deployed without reload, fullchain is
/etc/letsencrypt/live/hogehoge.net/fullchain.pem
-------------------------------------------------------------------------------

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/hogehoge.net/fullchain.pem (success)

今回使用したcertbot renewコマンドは、既存の証明書を自動更新してくれるため、設定ファイルに編集を加える必要がない。よって、次ステップは早速、評価!!



Step3. 第三者評価

前述の通り、certbot renewコマンドは自動更新してくれるので、ここでは確認の作業のみ。

Step1.で用いた評価サイトで再評価!!
ちなみに、キャッシュが残っていると、再評価されない可能性があるので、事前にキャッシュ(履歴)をクリアしておくことをお勧めする。その方法は、各ブラウザごとの方法にしたがってほしい。

# https://www.ssllabs.com/ssltest/analyze.html?d=<ドメイン名>
https://www.ssllabs.com/ssltest/analyze.html?d=hogehoge.net

この結果、無事【A】評価!!

ConoHaVPS_ssl3


設定によっては、更に上の評価【A+】などもあるようだが、とりあえず上位評価が得られたので、今回は目的達成!!