3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SSL SERVER TESTで A+の評価をとる

Posted at

WebサイトのSSLの安全性の評価ツールであるSSL SERVER TESTでA+の評価が取れたので、残しておきたいと思います。

環境

CentOS 7.5
Nginx 1.5.1
証明書はLet’s Encryptにて取得しています。
上記環境でのLet’s Encryptの証明書取得に関してはこちらで記事にしています。

nginxのconfファイルに追加したもの

/etc/nginx/conf.d/***.conf
server {
  (略)
  ssl_protocols TLSv1.2;
  ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE- 
ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
  ssl_prefer_server_ciphers on;

  ssl_session_cache shared:SSL:50m;
  ssl_session_timeout 1d;

  ssl_stapling on;
  ssl_stapling_verify on;
  resolver 8.8.8.8 8.8.4.4 valid=300s;
  ssl_trusted_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
  # www.example.comはそれぞれのドメインに変更してください。
  add_header Strict-Transport-Security 'max-age=63072000; includeSubDomains; preload;';
  (略)
}
ディレクディブ 概要
ssl_protocols SSL/TLSプロトコルを指定する
ssl_ciphers 暗号化スイートリストの指定
ssl_prefer_server_ciphers サーバー側で設定した暗号化スイートリストを使用するか on/off
ssl_session_cache セッションキャッシュを設定する on/off
ssl_session_timeout セッションキャッシュの有効期限を設定する
ssl_stapling OCSP Staplingを設定する on/off
ssl_stapling_verify OSCPの問い合わせ結果の検証を設定する on/off
resolver 名前解決の際に利用するDNSサーバを指定する
ssl_trusted_certificate OCSPの問い合わせに利用するCA証明書を指定する。

暗号化スイートリストとは

暗号スイート

HTTPSには鍵認証(),鍵交換(),メッセージ認証符号(),共通鍵暗号化()といったものがあり、それぞれプロトコルの選択が可能です。これの組み合わせを暗号化スイートと呼びます。
以下コマンドで確認できます。

$ openssl ciphers -v
ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
DH-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AESGCM(256) Mac=AEAD
DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(256) Mac=AEAD
DH-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AESGCM(256) Mac=AEAD
DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
(略)

暗号化スイートリスト

優先度が高い順番で暗号化スイートを並べ、

OCSP Staplingとは

OCSP

HTTPS通信では、サーバー証明書の有効/失効を証明書失効リスト(CRL)を用いていました。しかし、失効リストの更新には即時性の点で問題があります。こちらの解決策としてOCSPではCRLでの有効性の確認の代わりにOCSPレスポンダに証明書の有効性を確認します。

OCSP Stapling

通常はクライアントがOCSPレスポンダに問い合わせをしますが、OCSP StaplingはOCSPレスポンダからの問い合わせ結果をサーバーにキャッシュすることで、クライアントはOCSPレスポンダへの問い合わせの必要がなくなり、より短時間で証明書の有効性を確認することができます。

おまけ

Nginxのconfigを自動生成できます。
https://nginxconfig.io/

参考

OCSP Stapling
理解してるつもりの SSL/TLS でも、もっと理解したら面白かった話
Let’s EncryptとNginx : セキュアなWebデプロイメントの現状
NginxでHTTPS:ゼロから始めてSSLの評価をA+にするまで Part 2 – 設定、Ciphersuite、パフォーマンス

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?