Lightsailで提供されているWordpress環境=bitnami AIMで古いTLSを無効化しました。
TLS1.0&TLS1.1の無効化
SSL Server testで警告が出る理由
前回の証明書チェーンの問題を解決したものの、「古い認証を使っている」事を理由にSSL Server TESTにてBランク表示となっていました。
詳細を読むと、未だTLS1.0,TLS1.1が有効化されている事が原因と判明。
これを無効化し、再度Aランクを目指そうと思います。
bitnamiで修正するファイル
ググるとconfファイルに書かれた”SSLProtocol”行を修正すればいいことがわかります。
でもbitnami AIMではどこを直していいかわからない。
SSLProtcolと書かれたファイルは3つ。
/opt/bitnami/apache2/conf$ sudo grep SSLProtocol -rl ./ ./extra/httpd-ssl.conf ./bitnami/bitnami.conf ./original/extra/httpd-ssl.conf
結局1個づつ試し、反映されたのはbitnami.confbitnami-ssl.conf(WordPress5.8.2-4にて変更有り)した。
$sudo vi /opt/bitnami/apache2/conf/bitnami/bitnami-ssl.conf Listen 443 #SSLProtocol all -SSLv2 -SSLv3 SSLProtocol +TLSv1.2 SSLHonorCipherOrder on SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !EDH !RC4" SSLPassPhraseDialog builtin SSLSessionCache "shmcb:/opt/bitnami/apache/logs/ssl_scache(512000)" SSLSessionCacheTimeout 300 sudo /opt/bitnami/ctlscript.sh restart apache
”SSLProtocol +TLSv1.2” = TSL1.2以上のみを利用します。
個別に-つけて無効化していく方法もあります。
動作確認
SSL Server Testは都度時間がかかるため、opensslコマンドで確認します。
対処前
$ openssl s_client -connect dolls.tokyo:443 -tls1_1 CONNECTED(00000003) depth=1 C = US, O = Let's Encrypt, CN = R3 verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = dolls.tokyo verify return:1 --- Certificate chain 0 s:CN = dolls.tokyo i:C = US, O = Let's Encrypt, CN = R3 1 s:C = US, O = Let's Encrypt, CN = R3 i:O = Digital Signature Trust Co., CN = DST Root CA X3 ---
ーtls1_1をつけてTLS1.1でアクセスすると、答えが返ってきていました。
対処後
TLS1.0を弾いています。
$ openssl s_client -connect dolls.tokyo:443 -tls1 CONNECTED(00000003) 140238330042112:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:s sl/record/rec_layer_s3.c:1544:SSL alert number 70 --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 124 bytes Verification: OK --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported ..... ---
同様にTLS1.1も弾いています。
$ openssl s_client -connect dolls.tokyo:443 -tls1_1 CONNECTED(00000003) 140686813640448:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:s sl/record/rec_layer_s3.c:1544:SSL alert number 70 --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 124 bytes Verification: OK --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported ・・・ ---
そしてTLS1.2だと通ります。
f$ openssl s_client -connect dolls.tokyo:443 -tls1_2 CONNECTED(00000003) depth=1 C = US, O = Let's Encrypt, CN = R3 verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 CN = dolls.tokyo verify return:1 --- Certificate chain 0 s:CN = dolls.tokyo i:C = US, O = Let's Encrypt, CN = R3 1 s:C = US, O = Let's Encrypt, CN = R3 i:O = Digital Signature Trust Co., CN = DST Root CA X3 --- Server certificate -----BEGIN CERTIFICATE----- MIIFHTCCBAWgAwIBAgISBCXnDO905WbucikD0mPfaqxEMA0GCSqGSIb3DQEBCwUA ... 中略 ... -----END CERTIFICATE----- subject=CN = dolls.tokyo issuer=C = US, O = Let's Encrypt, CN = R3 --- No client certificate CA names sent Peer signing digest: SHA256 Peer signature type: RSA-PSS Server Temp Key: X25519, 253 bits --- SSL handshake has read 3102 bytes and written 307 bytes Verification error: unable to get local issuer certificate --- New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384 Server public key is 2048 bit Secure Renegotiation IS supported
結果、SSL Server TestでもAランク表示に返り咲きました。
TLS1.0&1.1がNoとなり、主だったクライアントからの模擬アクセスもすべてTLS1.2で返します。
実際はこの対処により、Android 4.xやIE8などの古いクライアントではこのサイトにアクセスできなくなります。
まあ未だにIEをつかう企業でも、IE11くらいは使っている事でしょう。