質問: apacheサーバーのssl暗号スイートでrc4を無効にする どうぞ、私自身の答えでeditセクションを見てください。彼らはこの難問についての説明を含んでいます。私はcentos 6.5 vps上で動作するapache 2.2.9サーバーに対してrc4を無効にしようとしていますが、成功しないようです。最近購入したビジネス検証済みの証明書がインストールされ、ssl接続は問題なく実行されていますが、チュートリアルに示されているように「セキュリティを強化する」ために可能な限り設定することを望みました。qualys ssl labsで設定を確認すると、結果ページに「このサーバはrc4暗号を受け入れますが、これは脆弱です。グレードはbに制限されています」と表示されます。しかし、私はこれをssl.confに入れました: sslciphersuite high:!anull:!enull:!export:!des:!md5:!psk:!rc4:!sslv2:!sslv3 this question の答えで与えられたスクリプトをtest-ssl-ciphers.shという名前のファイルに保存し、ipアドレスをループバックアドレスに変更しました。これは./test-ssl-ciphers.sh | grep -i "rc4"の結果です。testing ecdhe-rsa-rc4-sha...no (sslv3 alert handshake failure) testing ecdhe-ecdsa-rc4-sha...no (sslv3 alert handshake failure) testing aecdh-rc4-sha...no (sslv3 alert handshake failure) testing adh-rc4-md5...no (sslv3 alert handshake failure) testing ecdh-rsa-rc4-sha...no (sslv3 alert handshake failure) testing ecdh-ecdsa-rc4-sha...no (sslv3 alert handshake failure) testing rc4-sha...no (sslv3 alert handshake failure) testing rc4-md5...no (sslv3 alert handshake failure) testing rc4-md5...no (sslv3 alert handshake failure) testing psk-rc4-sha...no (no ciphers available) testing krb5-rc4-sha...no (no ciphers available) testing krb5-rc4-md5...no (no ciphers available) testing exp-adh-rc4-md5...no (sslv3 alert handshake failure) testing exp-rc4-md5...no (sslv3 alert handshake failure) testing exp-rc4-md5...no (sslv3 alert handshake failure) testing exp-krb5-rc4-sha...no (no ciphers available) testing exp-krb5-rc4-md5...no (no ciphers available) これらの各行には "no"が含まれています。スクリプトによると、サーバーは指定された暗号の組み合わせをサポートしていません。さらに、コマンドgrep -i -r "rc4" /etc/httpdから、上記のssl.confファイルのみが得られます。また、私の暗号スイートでopenssl ciphers -vを実行してもrc4暗号がまったく表示されないため、構成文字列を考えると意味があります。だから私はどういうわけかsslチェックウェブサイトが私に「サーバーはrc4を受け入れる」と言っているのかどうかについて迷っています。彼らは、受け入れられているとして、以下の暗号さえリストします:tls_rsa_with_rc4_128_md5 tls_rsa_with_rc4_128_sha tls_ecdhe_rsa_with_rc4_128_sha 誰かが可能な説明を持っていますか?何がおかしいのですか? rc4のサポートや「受け入れ」を設定する場所が他にあるかもしれません。ありがとう。[edit]自宅の仮想マシンでcentos 6.6を使用して、ループバックアドレスの代わりにドメイン名を使用してvpsに対してスクリプトを再度実行しました。この設定は暗号のリストがvmのopensslインスタンスによって提供されることを意味します:私はまだyesをもたらす暗号の中にrc4を持っていません。
回答: 更新された証明書をインストールしている間に、問題がispconfigでhttpsに必要なデータのセット全体(証明書、秘密鍵、caチェーンなど)を指定することによって引き起こされることがわかりました。別の言い方をすると、一連のデータを削除すると、qualysテストでドメインaが格付けされ、同時にrc4に関する警告も削除されます。詳細を元に戻すと、警告が戻ってきてグレードが再びbに制限されるため、因果関係について疑う余地はありません。それはあたかも各仮想ホストの詳細を与えることが何らかのデフォルトが私がssl.confで指定した暗号スイートを上書きした新しい環境を作成したかのようです。変です。解決策は、各仮想ホストのapacheディレクティブテキストエリアにsslciphersuite仕様を追加することです。これは私が私にaグレードを取得する構成にあるものです。sslprotocol all -sslv2 -sslv3 sslhonorcipherorder on # compression is disabled by default on my distribution (centos 6) # sslcompression off sslciphersuite ecdh+aesgcm:dh+aesgcm:ecdh+aes256:dh+aes256:ecdh+aes128:dh+aes:ecdh+3des:dh+3des:rsa+aesgcm:rsa+aes:rsa+3des:!anull:!md5:!dss edit(2017-05-16):この問題に関する追加の発見:sslciphersuiteの指定は必須です。 サーバーレベルで指定されているにもかかわらず、その特定のディレクティブが自動的に仮想ホスト構成に適用されないのはなぜでしょうか。 centos 6.9上でapache 2.2.15を実行しています。編集(2018年6月18日):詳細については。 sslciphersuiteディレクティブは一度だけ指定でき、それがすべての仮想ホストに適用できることを発見しました。(ベースのmod_ssl設定ファイルでは(centos 6では、ファイルは/etc/httpd/conf.d/ssl.confにあります)、単にディレクティブを指定するだけです)デフォルトの仮想ホストの外側。 apache 2.2のドキュメントには、このディレクティブのデフォルト値はsslciphersuite all:!adh:rc4+rsa:+high:+medium:+low:+sslv2:+expであると書かれています。私はこれがrc4暗号が由来するところであると思います:どんな仕様も「グローバルな」文脈になかったので私には当てはまりました、仕様が何もない場合、デフォルト値が適用されます。この理解は私にとって謎だったことを終わらせます。皮肉なことに、この説明が見つかったらcentos 7に切り替えようとしています。 hth.