1

以下を使用して、クライアント証明書認証を使用するように Apache2 を構成しました。

SSLVerifyClient require

うまくいきました。有効なクライアント証明書で自分のサイトにアクセスできます。ただし、ユーザーが ClientCertificate をインストールせずに接続すると、ブラウザーから紛らわしいエラーが表示されます。

(Chrome では「ERR_SSL_PROTOCOL_ERROR」、Firefox では「ssl_error_handshake_failure_alert」、Internet Explorer では「Internet Explorer は Web ページを表示できません」としか表示されません。

ユーザーが有効なクライアント証明書なしでアクセスしようとしたときに、カスタム ErrorDocument を表示したいと考えています。

問題は、サイトが http エラー コードを返さないことですが、リクエストを中止するため、Apache の「ErrorDocument」を使用できません。

ssl_error_log の最後の部分は次のとおりです。

[Wed Aug 31 11:11:57 2011] [info] [client 192.168.2.156] SSL library error 1 in handshake (server url:443)
[Wed Aug 31 11:11:57 2011] [info] SSL Library Error: 336105671 error:140890C7:SSL routines:SSL3_GET_CLIENT_CERTIFICATE:peer did not return a certificate No CAs known to server for verification?
[Wed Aug 31 11:11:57 2011] [info] [client 192.168.2.156] Connection closed to child 1 with abortive shutdown (server url:443)

これに対して有効な ErrorDocument を返すにはどうすればよいですか?

4

1 に答える 1

4
SSLVerifyClient optional
RewriteCond %{SSL:SSL_CLIENT_VERIFY} !=SUCCESS
RewriteRule ^/ http://localhost:8080/missing_cert.html [P,L]
于 2012-04-24T12:02:49.880 に答える