我遵循了本指南创建证书并自行签名,然后设置 Apache 以使用该证书,但每当我尝试安全地查看我的网站时,Firefox 都会显示此错误:
安全连接失败
连接到 animuson.com 时发生错误。
SSL 收到的记录超过了最大允许长度。
(错误代码:ssl_error_rx_record_too_long)
我首先尝试使用 4096。然后,我没有使用指南中的 4096,而是使用了 1028(我认为这是正常使用的大小)。我在 CentOS 5 上使用 APache2...
来自“/etc/httpd/conf/extra/httpd-ssl.conf”(当然是压缩在一起的):
Listen 443
SSLEngine On
SSLCertificateFile "/etc/httpd/conf/ssl/server.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/server.key"
有任何想法吗?
编辑
我将 miles 从其默认的 ssl.key 和 ssl.crt 目录中移出,并做了一些我不记得的事情,这些事情似乎有效。它开始显示“添加例外”页面,我通过根证书将其安装到我的浏览器中,现在它显示以下错误:
安全连接失败
连接到 animuson.com 时发生错误。
SSL 对等方无法协商一组可接受的安全参数。
(错误代码:ssl_error_handshake_failure_alert)
我不知道这意味着什么,也不知道您需要什么信息来帮助我。
答案1
太棒了!所以,为了清楚起见,你现在处于错误的位置SSL_ERROR_HANDSHAKE_FAILURE_ALERT
。一个不错的调查方法是
openssl s_client -state -debug -showcerts -verify 0 -connect example.com:443
(以及各种有用的选项),并且您提供了足够的帮助来提供实际的服务器名称。
握手错误是由于 SSL/TLS 过程中的错误引起的握手。我们顺利获得了证书,这让我认为问题要么是CertificateRequest
服务器响应失败,要么是密码套件出了问题。现在我仔细想想,后一个问题有自己的一组错误消息。Firefox 的NSS 和 SSL 错误代码在这里很方便。
SSLVerifyClient require
在 Apache 配置中确实会要求客户端提供有效的证书来向服务器进行身份验证,正如您确认的那样,这就是问题所在。
答案2
Web 服务器很可能需要客户端进行身份验证...在 apache 服务器中它位于 httpd.conf 中...“SSLVerifyClient 需要”这要求您在 Firefox 中加载“您的证书”...并且同时加载 CA 证书链。
问题在于个人或 CA 服务器证书
可能未与 CA 链绑定。可能已过期。可能已损坏。
尝试重新导入个人证书重新导入个人证书中引用的所有 CA
如何操作工具、选项、加密、查看证书您的证书....从 PKCS12 文件 *.p12 导入您的证书服务器、导入、认证文件 *.cer 您可能需要其中的几个,具体取决于链