我有以下设置:
运行在CentOS 5.5上的Apache服务器 在本地,它使用SSL连接OK。
我的服务器和外部networking之间的代理。 我不控制这个代理。 它将端口转发到我的服务器上的https端口。
CNAMElogging将我的服务器所需的外部DNS名称映射到代理。
在本地,一切正常。 但是当使用代理连接时,使用CNAME或直接IP地址,我收到以下错误:
SSL Error: SSL_write 23995: 1 - error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
我甚至不知道如何正确debugging这个问题。
这很可能是您的服务器证书链接到的中间证书。 使用curl或openssl代替浏览器进行testing,因为浏览器不仅在其可信存储中包含根证书,而且还包含中间证书,这使得您的浏览器testing不可靠。
大多数情况下,这个错误是由于apache不是将中间证书发送回客户端 – 只有服务器证书。 客户端上的根证书链接到中间证书,而不是服务器证书。 中级证书链接到服务器证书。