ApacheでTLS 1.0および1.1を無効にするにはどうすればよいですか?


31

構成をこれに更新することでtls 1.0とtls1.1を無効にできない理由を誰もが知っていますか?

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

これを実行した後、Apacheをリロードし、ssllabsまたはcomodo sslツールを使用してsslスキャンを実行しますが、まだtls 1.1と1.0がサポートされていると言います。これらを削除したいですか?

回答:


45

複数のTLS VirtualHostsがあり、Server Name Indication(SNI)を使用する場合SSLProtocol 、各VirtualHostにディレクティブを持つことは許可されていますが、実際にIP VirtualHostsがない場合、SSLProtocolディレクティブの最初の出現からの設定がサーバー全体に使用されますおよび/またはTLS 1をサポートするすべての名前ベースのVirtualHosts 。

したがって、メインhttpd.conf(および、たとえばインクルードされたすべてのスニペットconf.d/*.confと同様のインクルード)でSSLProtocolディレクティブのオカレンスを確認してください。

あなたの構文は正しいですが、私はezra-sの答えに同意しallますが、速記を展開すると、わずかに改善することができます:

 SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 

単に使用することにより:

 SSLProtocol TLSv1.2

これはすべて理にかなっていますが、私はあなたが推奨したことをしました。"SSLProtocol"のすべての参照について/ etc / httpdディレクトリをgrepしました。次に、それをSSLProtocol TLSv1.2に更新してから再起動しましたが、まだtls 1.0および1.1がサポートされていることがわかります。また、別のサーバーで同じ問題を試しました。何か案は?
デビッド

1
誤報、これは確かにcomodoとssllabsのレポートによってキャッシュされました。現在は正しく報告されているようです。ありがとうございました。
デビッド

3
不要なプロトコルにはマイナスで「すべて」を使用することをお勧めします。新しい標準が開発され、古い標準が安全でないことが判明したため、Apacheの将来のバージョンは「すべて」を異なる方法で定義します。
ボブポール

Letsencryptを使用している場合は、確認することを忘れないでください/etc/letsencrypt/options-ssl-apache.conf
Memes

9

指定したもので十分です。他のプロトコルは表示されません。SSLLABSが最近のテストをキャッシュすることを忘れないでください。あなたのようにそれを定義する他のプロトコルがないことを知ることは、意図的に複雑になっています。

いずれにせよ、あなたはそれを使用するか、単純に:

SSLProtocol TLSv1.2

指定すると違いはあります-ALL +TLSv1.2か?
Chazyチャズ

「すべて」は「+ SSLv3 + TLSv1 + TLSv1.1 + TLSv1.2」に展開されます。「-All」を使用してもメリットがありません。実際、ドキュメントからは、「-all」が有効な構文であることも明らかではありません。あなたは[+/-]プロトコルを行うことができますが、すべてのプロトコルではありません。httpd.apache.org/docs/2.4/mod/mod_ssl.html
bobpaul

6

私もこの問題に苦労しており、SSLProtocolディレクティブを使用して設定を変更することはできませんでした。仮想ホスト構成に次を追加することになりました。

SSLOpenSSLConfCmd Protocol "-ALL, TLSv1.2"

完璧に機能しました。SSLOpenSSLConfCmdディレクティブの詳細については、こちらをご覧ください


4

ApacheでTLS1.0バージョンを無効にします。

複数の仮想ホスティングがある場合は、すべての構成ファイルを更新する必要があります。そうでない場合は、ssl.confで十分です。

TSLサポートバージョンを確認するには:

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.0:
|   TLSv1.1:
|   TLSv1.2:

Apache構成ファイルを変更して、vi /etc/httpd/conf.d/web.confすべてのTLSを削除し、TLS1.2のみを許可します。

SSLProtocol TLSv1.2

変更後に検証します。

# grep SSLProtocol /etc/httpd/conf.d/web.conf
SSLProtocol TLSv1.2

# nmap --script ssl-enum-ciphers -p 443 192.168.11.10 | grep TLSv
|   TLSv1.2:
# service httpd restart

-1

変更を反映するには、次のコマンドを使用してApacheサービスを再起動する必要があります。

sudo service apache2 restart

以下のコードは問題なく機能します。詳細については、 https://karthikekblog.com/how-to-disable-enable-ssl-tls-protocols-in-ubentu-apache-linux-server/をご覧ください。

<VirtualHost *:443>
ServerName www.yourdomain.com
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol +TLSv1.2
SSLCertificateFile /etc/apache2/certificates/certificate.crt
SSLCertificateKeyFile /etc/apache2/certificates/certificate.key 
SSLCertificateChainFile /etc/apache2/certificates/intermediate.crt
</VirtualHost>

これは何も無効にしません。TLSv1.2のみが有効になります。また、再起動の方法は、配布ごとに異なり、同じ配布のバージョン間でも異なります。
ジェラルドシュナイダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.