apache - 无法建立 SSL 连接,如何修复我的 SSL 证书?

标签 apache ssl openssl wget

我正在尝试 wget 到我自己的盒子,它不能是 wget 中的内部地址(另一个开发人员这么说)。

当我 wget 时,我得到这个:

wget http://example.com
--2013-03-01 15:03:30--  http://example.com/
Resolving example.com... 172.20.0.224
Connecting to example.com|172.20.0.224|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://www.example.com/ [following]
--2013-03-01 15:03:30--  https://www.example.com/
Resolving www.example.com... 172.20.0.224
Connecting to www.example.com|172.20.0.224|:443... connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.

我相信这是因为我没有正确设置证书。使用 openssl:

openssl s_client -connect example.com:443
CONNECTED(00000003)
15586:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:588:

虽然如果我在另一个站点上执行相同的命令,它会显示整个证书。

也许 ssl 证书从未在该域的 Apache 的 conf 文件中设置?

如果是这样,我应该在虚拟主机中指定什么?除了指定 --no-check-certificate 之外还有其他选择吗,因为我不想这样做?

最佳答案

SSL23_GET_SERVER_HELLO:unknown protocol

当 OpenSSL 从服务器接收到的协议(protocol)版本不是 ServerHello 时,就会发生此错误。如果服务器使用普通(未加密)HTTP 进行应答,则可能会发生这种情况。如果服务器仅支持例如,它也可能发生TLS 1.2 和客户端不了解该协议(protocol)版本。通常,服务器至少向后兼容 SSL 3.0/TLS 1.0,但也许这个特定的服务器不是(通过实现或配置)。

不清楚您是否试图通过 --no-check-certificate。如果这行得通,我会感到很惊讶。

一个简单的测试是使用wget(或浏览器)请求http://example.com:443(注意http://,而不是 https://);如果有效,则 SSL 未在端口 443 上启用。要进一步调试它,请使用 openssl s_client-debug 选项,它会在错误消息转储前几个OpenSSL 无法解析的服务器响应字节。这可能有助于识别问题,尤其是在服务器未使用 ServerHello 消息进行应答时。要查看 OpenSSL 的确切期望,请查看源代码:在 ssl/s23_clnt.c 中查找 SSL_R_UNKNOWN_PROTOCOL

无论如何,查看 apache 错误日志也可能提供一些见解。

关于apache - 无法建立 SSL 连接,如何修复我的 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15166950/

相关文章:

php - 为什么 Apache 打印我的 PHP 文件的内容而不是将它们传递给 PHP-FPM?

.net - 通过 AMQPS 连接到 ActiveMQ Artemis 的 AMQPNetLite 客户端是否需要客户端存储客户端证书?

ssl - 将主题名称转换为 x509_name 格式

ssl - 使用SubjectAltName 'OtherName"在 openSSL 中创建 CSR 时出错

c++ - uWebSockets (C++) : secure wss server

java - jakartacommons-io 2.1 使用哪个版本的 jakartacommons-codec?

php - apache - 无需 root 的额外 mysql 安装

php - UTF-8贯穿始终

iphone - 我们如何告诉 CFStream 使用一组 anchor 证书?

java - 随机出现javax.net.ssl.SSLException : Unrecognized SSL message,明文连接?