ApacheでTLS1.2を有効にする方法

カテゴリ:Webサーバ

TLS1.2推奨の背景

POODLE(CVE-2014-3566)の脆弱性の発見により、SSL3.0は非推奨とされ殆どのWebブラウザで無効にされています。
また、実装が不十分TLS1.0/1.1も非推奨とされており、現状ではTLS1.2が強く推奨されています。

ApacheでTLS1.2を有効にする

CentOS 6 (Apache 2.2)やCentOS 7 (Apache 2.4)において、TLS1.2を有効にする場合、ssl.conf(/etc/httpd/conf.d/ssl.conf)でSSLProtocolに以下を記述します。
SSLProtocol All -SSLv2 -SSLv3 -TLSv1
※ALLは使用可能なすべてのプロトコル(OpenSSL 1.0.1以降ではSSL2.0、SSL3.0、TLS1.0、TLS1.1、TLS1.2)を有効、-SSLv2 -SSLv3 -TLSv1はSSL2.0、SSL3.0、TLSv1.0を無効にすることを意味します。(つまりTLS1.1とTLS1.2が有効になる)
※TLS1.1を無効にしないのはTLS1.2未対応Webブラウザへの配慮です。

TLS1.2のみに制限する場合は、以下を記述します。

SSLProtocol +TLSv1.2
※明示的に-ALLを追加してもいいです。
SSLProtocol -ALL +TLSv1.2
※VirtualHostを使用している場合は、各VirtualHostディレクティブ内に記述します。

SSLProtocolに指定可能な値

https://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslprotocolの日本語訳より
使用可能な(大文字と小文字を区別しない) プロトコルは次のとおりです。

SSLv2
これはSecure Sockets Layer(SSL)プロトコル、バージョン2.0です。 Netscape Corporationが設計した元のSSLプロトコルです。 その使用は推奨されなくなりましたが、プロトコルのセキュリティの弱点が原因です。

SSLv3
これは、Netscape CorporationのSecure Sockets Layer(SSL)プロトコル、バージョン3.0です。 これはSSLv2の後継であり、TLSv1の前身です。 ほぼすべての一般的なブラウザでサポートされています。

TLSv1
これはTransport Layer Security(TLS)プロトコル、バージョン1.0です。 これはSSLv3の後継であり、 RFC 2246で定義されています 。

TLSv1.1 (OpenSSL 1.0.1以降を使用している場合)
RFC 4346で定義されているTLS 1.0プロトコルの改訂版。

TLSv1.2 (OpenSSL 1.0.1以降を使用している場合)
RFC 5246で定義されているTLS 1.1プロトコルの改訂版。

All
これは、"+SSLv2 +SSLv3 +TLSv1"、OpenSSL 1.0.1以降では"+SSLv2 +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2"のショートカットです。

公開日時: 2018年06月09日  20:54:14

Webサーバに戻る

「Webサーバ」に関する他のTips

このページのトップに戻る