2011-05-09 161 views
1

严格遵循SSL证书颁发机构文档后,我很难解决此错误的原因。当通过HTTPS访问我的网站的Firefox吐出以下错误:SSL无法进行握手

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

您使用的是自签名证书吗? – 2011-05-09 09:21:19

+0

是的,我创建了自己的证书颁发机构来完成这项工作。这是我长期需要的。 – crockpotveggies 2011-05-09 09:24:34

回答

2

日志文件中的那行可能稍后有用,但它只是[警告],它不是handshake_failure的含义。 Handshake_failure意味着无法协商密码套件 - 客户端和服务器都不支持密码套件。看看你的服务器支持哪些密码。

编辑:我总是忘记,如果客户端未能提供必需的证书,那也会导致handshake_failure(第7.4.6节)。

+0

现在看看它,谢谢! – crockpotveggies 2011-05-09 10:05:25

+0

好吧,终于明白了,这是关键(没有双关意图)来缩小这个问题。我很感激帮助。 – crockpotveggies 2011-05-09 10:26:10

+1

在这种情况下,你应该接受答案。一旦你收集了几个问题,接受答案的百分比就会显示在用户名旁边,如果答案很低,人们将不愿意回答。 – 2011-05-09 11:27:14

2

SSL将CommonName与您实际尝试连接的服务器的名称进行比较。

可能您正在使用“localhost”或IP地址等替代名称。

+0

我现在看看它谢谢! – crockpotveggies 2011-05-09 09:25:18

+0

我已经完成搜索并确保所有服务器名称都显示为“domain.com”。还试过“* .domain.com”,不幸的是它仍然存在。这是在Apache的httpd.conf文件中。我错过了什么? – crockpotveggies 2011-05-09 09:33:30

+0

我不是.domain.com听起来不像我的合法域名。 domain.com与模式不匹配(如果它是文学上的)。您可以将名称更改为www.domain.com或类似名称吗? – 2011-05-09 09:35:46

2

解决了这个问题,不幸的是它是由我的Apache发行版中的默认值创建的。选项:

SSLVerifyClient require 

实际需要将其设置为:

SSLVerifyClient optional 

我不发放客户端证书,只是还没有。然而,信用是由于缩小问题的答案。我感谢帮助!