严格遵循SSL证书颁发机构文档后,我很难解决此错误的原因。通过HTTPS访问我的网站时,Firefox会发出以下错误:
SSL peer was unable to negotiate an acceptable set of security parameters.
(Error code: ssl_error_handshake_failure_alert)
我回去并在SSL错误日志中找到了这个(域名是故意修改的):
[Mon May 09 02:11:05 2011] [warn] RSA server certificate wildcard CommonName (CN) `*.domain.com' does NOT match server name!?
服务器名称在哪里定义?我在httpd-ssl.conf文件中找不到合理的解释来解决此错误。谢谢你的帮助!
更新最后解决了问题,详情如下:
不幸的是,它是由我的Apache发行版中的默认值创建的。选项:
SSLVerifyClient require
实际上需要设置为:
SSLVerifyClient optional
我还没有发布客户证书。然而,归功于缩小问题的答案。我很感激帮助!
答案 0 :(得分:2)
SSL将CommonName与您实际尝试连接的服务器的名称进行比较。
可能您使用的是“localhost”或IP地址等替代名称。
答案 1 :(得分:2)
日志文件中的那一行可能会在以后发生,但它只是一个[警告],而不是handshake_failure的含义。 Handshake_failure意味着无法协商密码套件 - 客户端和服务器都不支持密码套件。查看服务器支持的密码。
编辑:我总是忘记如果客户端未能提供所需的证书,那么也会导致handshake_failure(第7.4.6节)。
答案 2 :(得分:2)
解决了这个问题,不幸的是它是由我的Apache发行版中的默认值创建的。选项:
SSLVerifyClient require
实际上需要设置为:
SSLVerifyClient optional
我还没有发布客户证书。然而,归功于缩小问题的答案。我很感激帮助!