ApacheはSSLv2 SSLv3を無効にします。

ApacheはSSLv2 SSLv3を無効にします。

このトピックに関するいくつかの質問があることを知っています。しかし、私が何を加えることができるかは本当にわかりません。

ポイントは次のとおりです。

  • OpenSuse 12.3でApache 2.2.22を使用しています。
  • SSLProtocolオプションは私のssl.confにあります。
  • 私は次のオプションをすべて試しました。

    SSLProtocol ALL -SSLv2 -SSLv3 
    ----------
    SSLProtocol +TLSv1 -SSLv2 -SSLv3
    ----------
    SSLProtocol TLSv1
    ----------
    SSLProtocol -ALL TLSv1
    ----------
    

しかし、何を試しても、すべてのプロトコルをまだ使用できます。

なぜ無効にできないのですか?

編集:だから多くの努力をしたので要約したいと思います。
SSLProtocol宣言は1つだけあり、どこに置くかは重要ではありません(vhost confまたはssl-default conf)。
すべてのプロトコルを拒否するために「-all」オプションを使用すると正常に動作するため、ロードされていることがわかります。特別なプロトコルを拒否しても効果はありません(例:-SSLv3オプション)。プロトコルが許可されている場合は、すべてのプロトコルを使用できます(「SSLProtocol TLSv1 -SSLv2 -SSLv3」または「SSLProtocol -all TLSv1」を使用すると、すべてのプロトコルを使用できます!)。
どんな考えですか?

答え1

私はPOODLEエクスプロイトを使ってこの問題を直接解決しました。

OpenSuSEの場合のみ/etc/apache2/ssl-global.conf

<IfDefine SSL>
<IfDefine !NOSSL>
<IfModule mod_ssl.c>
  #Your other stuff
  SSLProtocol All -SSLv2 -SSLv3
</IfModule>
</IfDefine>
</IfDefine>

次のコマンドを使用してApacheを保存して終了し、再起動します。rcapache2 restart

まだご質問がございましたらお知らせください。

答え2

ロードSSLProtocol ...後の様子です。SSLサイト

次のようにして、これらのケースであることを確認できます。

strace httpd -t 2>&1 | egrep 'open\("\/etc\/(apache(2|)|httpd)\/.*\.conf'

opensuseがapache2をどのように実装するのかわかりません。apache2 -t代わりに使用することもできますhttpd -t

もしあなたのSSLプロトコルあなたより低い現場会議またはあなたの設定を含めてくださいサイト定義、この構成はお客様の製品には適用されません。現場会議

次に、2つのオプションがあります。

  1. 確実にするSSLプロトコルあなたより先に読み込む現場会議
  2. SSLProtocol ...あなたの実装現場会議/サイト定義

答え3

この試み

SSLProtocol -ALL +TLSv1

変える

SSLProtocol ALL -SSLv2 -SSLv3 
----------
SSLProtocol +TLSv1 -SSLv2 -SSLv3
----------
SSLProtocol TLSv1
----------
SSLProtocol -ALL TLSv1

関連情報