尝试使用 SSL 证书实现客户端身份验证。
http://www.modssl.org/docs/2.8/ssl_howto.html#auth-selective
收到以下错误。
Apache:重新协商握手失败:客户端不接受!?
火狐浏览器:
ssl_error_handshake_failure_alert
我认为这是一个配置错误,但无法找到它。
附加信息:商业 CA 服务器证书服务器安全在 Apache 2.2 和 Passenger 中运行正常。只有客户端身份验证相关指令不起作用。
答案1
如果握手失败,则可能是客户端不理解(或配置为使用)协商的 SSL 协议。例如,在 FF 中检查是否启用了所有 SSL 协议(SSL2、SSL3、TLSv1),并将其与为 Apache 配置的 SSL 协议进行匹配。
更新:进行网络跟踪以查看客户端和服务器都支持哪些密码套件可能也很有用。也许他们找不到匹配的套件,因此握手失败。
或者设置 modssl 日志也可以显示更多详细信息:http://www.modssl.org/docs/2.8/ssl_reference.html#ToC19
答案2
您是否正在运行 Debian/Lenny?
我们遇到了类似的问题,最后发现现在接受的证书不能有 MD5(SHA-其他的都可以)校验和,因为它被认为是不安全的。
我们的问题是 GnuTLS+OpenLDAP。在花更多钱之前,您可能想尝试更新证书或甚至自签名证书。
答案3
在我的情况下,客户端证书(导入到 Firefox 的“.p12”)已过期,并产生了这样的错误。如果是这种情况,您需要重新生成客户端证书并对其进行签名。
答案4
检查 Paypal URL
api.paypal.com/webscr&cmd=_express-checkout&token='; 替换为 api.paypal.com/webscr&cmd=_express-checkout&token=';
更多信息请参见... http://blog.oryxn.com/2010/10/ssl_error_handshake_failure_alert-paypal/