Lightsailで動くWordPressのTLS1.0&TLS1.1を無効化してSSL Server TestでAをもらう

Lightsailで動くWordPressのTLS1.0&TLS1.1を無効化してSSL Server TestでAをもらう

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くらいは使っている事でしょう。

コメントを残す