SSL/TLSの暗号化通信をTLS1.2 のみに制限する

Apache、SSLプロトコルを、TLS1.2のみに設定する

お客さんが使用しているカートシステムで、セキュリティを強化するために、インターネット通信で使用する暗号化方式「TLS 1.2」のみして欲しいて要望があったので、Apacheを「TLS 1.2」のみ変更しました。

カートシステム以外でも、スタバでもTLS 1.2のみの接続となっているのでセキュリティを考慮しするとTLS 1.2のみ接続が世の中の流れのようです

スターバックスが「TLS 1.0/1.1」無効化、「TLS 1.2」のみの対応へ~公式サイトのHTTPS接続ページで

TLS1.2のみの有効にしたApacheの設定について

TLS1.2のみにするには、Apacheの設定ファイル内に、「SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1」のようにTLS 1.2のみ接続するように設定して、設定ファイルを読み直すと反映します

$ sudo vi /etc/httpd/conf.d/ssl.conf
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
# 下記のような設定でもTLS1.2となります
SSLProtocol +TLSv1.2

# CentOS 7.x系
$ sudo systemctel restart httpd
# CentOS 6.x系
$ sudo /etc/init.d/httpd resart

サポートしているTLSのバージョンの確認方法

どのTLSがサポートされているか確認するには、opensslコマンド使います。私はmacOSで動作確認をおこないました。以下のコマンドで確認できます

$ openssl s_client -connect my.server.example:443 -tls1_2
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
 Protocol : TLSv1.2

#駄目な場合は、下記のように表示されます
$ openssl s_client -connect my.server.example:443 -tls1_1
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
 Protocol : TLSv1.1

スポンサーリンク