💻

SSL Labsで満点を取る
March 31, 2021February 19, 2024
#Develop#SSL

SSL labs A+

SSL Labs で A+を取り、全ての項目を満点にした

CentOS8 初期状態

SSL labs initial 初期状態は B でした
デフォルトで TLS1.3+TLS1.2 のみでした
certificate と Protocolsupport は満点
他は足りないところがあるので埋めていきます。

Key Exchange

DHkey を複雑にすればよいみたいです。
確認すると、4096bit あれば満点になりそう
デフォルトでは使用されていませんでした。

openssl dhparam 4096 -out dhparam.pem

作成になかなか時間がかかります。

        ssl_dhparam /etc/nginx/dhparam.pem;

Cipher Strength

week になってる ciper を徐々に削っていきます。
満点を取るには 256bit 以上の鍵である必要があります。
ssl_prefer_server_ciphers on;することでサーバーが指定する cipher 以外を使わせなくすることができます。

        ssl_ciphers HIGH:!CAMELLIA:!AES128:!SHA256:!SHA1:!SHA384:!ARIA128:!RSA;
        ssl_prefer_server_ciphers on;
        ssl_ecdh_curve secp384r1;

TLS1.3 の cipherh は nginx のssl_chipersで設定することができません。 Openssl の conf を編集して対応させます。
※OpenSSL を他のサービスで利用している場合には注意が必要です
/etc/pki/tls/openssl.cnf

[ crypto_policy ]

.include /etc/crypto-policies/back-ends/opensslcnf.config

crypto_policyは別ファイルに記述しているようです。
/etc/crypto-policies/back-ends/opensslcnf.config

#Ciphersuites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:TLS_AES_128_CCM_SHA256
Ciphersuites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

上から下に書き換えます。

HSTS を有効にする

ブラウザに次回以降 https でアクセスするように伝えるヘッダを送信します。 これを設定すると A から A+になりました。

        add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload';

おまけ

OCSP stapling

        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/letsencrypt/live/sakakinox.net/chain.pem;

DNS CAA

DNS に CAA レコードを追加した。

;; ANSWER SECTION:
sakakinox.net.		3600	IN	CAA	0 issue "letsencrypt.org"

RSA-key-size

証明書自体も複雑にした

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

参考サイト

SSL Server Rating Guide

Contribute to ssllabs/research development by creating an account on GitHub.

GitHub

SSL Server Rating Guide

おしまい

sakakinox

Written by sakakinox
Server enginier

Copyright © sakakinox.net 2021-2026.