2

すべて SSL を使用する多数の仮想ホストをセットアップしました。すべてがうまくいきました。次に、そのうちの 1 つに SSL クライアント認証を追加する必要がありました (これを SVN ホストと呼びましょう)。SVN ホストのクライアント証明書を有効にした後、ホストは動作を停止し、代わりにデフォルトの仮想ホストが使用されます (つまり、一致しないサーバー証明書が提供されるため、安全なホストへのアクセスもクライアント認証も行われません)。仕事)。

私が使用している仮想ホスト構成は次のとおりです。

<VirtualHost *:443>

ServerName  svn.anydomain.com

SSLEngine on
SSLOptions +StrictRequire
SSLProtocol -all +TLSv1
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!SSLv3:RC4+RSA:+HIGH:+MEDIUM

SSLCertificateFile /etc/certs/svn.crt
SSLCertificateKeyFile /etc/certs/svn.key
SSLCertificateChainFile /etc/certs/starcom/sub.class1.server.ca.pem
SSLCACertificateFile /etc/certs/cacert.crt
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

SSLVerifyClient require
SSLVerifyDepth 2
SSLUserName SSL_CLIENT_S_DN_CN

<Location /path0>
    DAV svn
    SSLRequireSSL
    SVNPath /var/svn/path0
    #Require valid-user
</Location>

<Location /path1>
    DAV svn
    SSLRequireSSL
    SVNPath /var/svn/path1
    #Require valid-user
</Location>

</VirtualHost>

また、この問題は Mac OS X でのみ発生するようです。Windows 8 から問題なくホストにアクセスできます。基本的に、私の Mac では、curl でこれらのオプションを使用した場合にのみ動作させることができます (一貫性がない場合もあります)。

curl -v -v -v -1 -k --cacert Documents/Certs/CACert.pem --cert Documents/Certs/ClientCert.pem  https://svn.anydomain.com/path1

これは代わりに失敗します (TLSv1 ではなく SSLv3 の -1 ではなく -3 に注意してください)。

curl -v -v -v -3 -k --cacert Documents/Certs/CACert.pem --cert Documents/Certs/ClientCert.pem  https://svn.anydomain.com/path1

デフォルトの仮想ホストの証明書を返します。この動作 (間違った仮想ホスト) は、Mac (Safari、Eclipse+Subversive、Cornerstone など) 上のそのドメインへのアクセスに対して得られるものです。

何か案は?

4

2 に答える 2

1

httpd.conf でログレベルを上げましたか? デバッグ メッセージを有効にして実行し、error_log を tail -f して、興味深いものが表示されるかどうかを確認してください。

SSL クライアント認証でよくある問題は、SSLVerifyDepth パラメータです。SSLVerifyDepth の数値は、少なくともクライアント証明書のチェーン内の証明書の数と同じである必要があります。
例: SSLVerifyDepth 10

深さは、実際には中間証明書発行者の最大数、つまり、クライアント証明書の検証中に追跡できる CA 証明書の最大数です。深さ 0 は、自己署名クライアント証明書のみが受け入れられることを意味します。デフォルトの深さ 1 は、クライアント証明書が自己署名できるか、サーバーに直接認識されている CA によって署名される必要があることを意味します (つまり、CA の証明書はSSLCACertificatePath の下) など

http://www.modssl.org/docs/2.6/ssl_reference.html

于 2014-03-11T03:38:40.707 に答える