web-dev-qa-db-ja.com

SSLCipherSuiteの設定は、各仮想ホストで複製された場合にのみApache ssl.confから有効になりません

奇妙な問題があります。 SSLProtocol構成はssl.confファイルに適用されますが、SSLCipherSuite構成は適用されません。各オプションを変更し、Qualys SSL Labsでスキャンを実行して、これをテストしました。

数時間頭を壁にぶつけた後、SSLCipherSuiteをvHostの1つに直接入れてみると、すぐにA +の評価を得ました。そのため、ssl.confとhttpd.confのvHostの1つに同じ暗号があります。 SSLCipherSuiteを使用してvHostに対してスキャンを実行すると、A +が取得され、他のvHostに対してスキャンを実行すると(グローバルssl.confが適用されることを期待して)Bが取得されます。

17個のvHostがあり、グローバルな「VirtualHost default:443」でこれを把握したいので、これをすべてのvHostに個別に追加する必要はありません。

-UPDATE 6/14-

Apache + Centos 6.5を使用しています。

Httpd.confをチェックしましたが、デフォルトではssl.confファイル(./conf.d/ssl.conf)の場所であるInclude conf.d/*.confが有効になっています

私のバージョンのApache + CentOSでは、availableおよびenabledがありませんディレクトリ。すべての.confファイルがある単一のconf.dディレクトリのみ。

次のコマンドで有効なvHostsを確認しましたが、ssl.confが読み込まれ、そのファイルで定義されたdefaultvhostが有効になっていることがわかります。

# httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:443                  is a NameVirtualHost
         default server localhost (/etc/httpd/conf.d/ssl.conf:75)
         port 443 namevhost localhost (/etc/httpd/conf.d/ssl.conf:75)
         port 443 namevhost {mydomain}.com (/etc/httpd/conf/httpd.conf:1023)
         port 443 namevhost .......
         .......
         .......(x60)

また、グレースフルリロードも実行しました

# apachectl configtest && apachectl -k graceful
Syntax OK
4
JT Fair

あなたは間違いなく正しいアプローチを取っているので、いくつかのことをテストしましょう。ご使用のサーバー用の現在の安定したApache + Ubuntu 16.04は非常に一般的であると仮定しますが、異なる場合は環境のコマンド/パスを調整します。これらはすでに試してみたかもしれませんが、通常は簡単です。

最初に、/etc/Apache2/Apache2.confのメインのApache構成ファイルにIncludeOptional conf-enabled/*.confが含まれていることを確認します(下部近くにあり、デフォルトで存在し、コメントが解除されている必要があります)。

次に、使用する設定がenabledであることを確認します。存在するという事実だけでは十分ではなく、有効にする必要があります。使用する構成ファイルの名前がa2enconf sslで、ssl.confに存在する場合は、/etc/Apache2/conf-available/コマンドを使用します。存在しない場合、またはカスタムバージョンを作成する場合は、新しいファイルを作成し、名前で有効にします(例:nano /etc/Apache2/conf-available/custom-ssl.conf && a2enconf custom-ssl

最後に、サードパーティのサービスで再テストする前に、簡単なconfigtestを実行してから「グレースフル」再起動を実行します(おそらくSSL Labs?)。グレースフルリスタートは、アクティブなユーザーがなくなるまで待機してから、ユーザーがまだサイトを閲覧している間に終了するのではなく、再起動します。

apachectl configtest && apachectl -k graceful

1
Tom Brossman

CentOS 7とApache 2.4.6でも同じ問題が発生しましたが、修正は、すべての仮想ホストに含めるSSL構成ファイルのSSLCipherSuiteディレクティブを<VirtualHost _default_:443>の外に移動することでした。

Listen 443 https
SSLCipherSuite <list of ciphers>

<VirtualHost _default_:443>
[...]
</VirtualHost>
1
VirtualWolf