ssl_error_rx_record_too_long - 同一IP的客户端和服务器SSL证书

3
我正在实现服务A和服务B之间的相互SSL。服务A使用1向和2向SSL。1向用于用户与网站A之间的通信,2向SSL用于以安全方式将请求从该用户转发到服务B。

在服务A中,1向SSL在Tomcat server.xml中指定。使用JSEE安全套接字通信在客户端(服务A)上实现2向SSL,并在Tomcat配置(服务B)上实现。目前,当我尝试访问服务A时,会出现ssl_error_rx_record_too_long错误。

根据这个答案ssl_error_rx_record_too_long和Apache SSL,可能的原因之一是我为同一个IP使用了多个SSL证书。是否真的不能为同一个FQDN使用多个证书?即使其中一个证书是服务器证书(用于1向SSL),另一个证书是客户端证书(用于2向SSL)?

这可能不是我的问题的原因,但我只是想确保同一个FQDN可以有几个证书。谢谢帮助!

1个回答

0

ssl_error_rx_record_too_long 通常与证书配置无关,而是因为在该端口上通信的实际上并没有使用 SSL/TLS。

你链接的 问题 的答案(甚至是问题的更新)也指向了这个问题(例如缺少 SSLEngine on)。你可能在连接器配置中忘记了像 SSLEnabled="true" 这样的东西。

正如我在 回答你其他问题 中所说的那样,能够在同一个 IP 地址上配置两个服务器证书对于你的情况来说并不是真正的问题。

实际上可以为同一 FQDN 拥有多个证书

使用服务器名称指示TLS扩展可以在同一IP地址和端口上配置多个证书,但是服务器和客户端都需要支持它。特别地,在Java 7的JSSE中,服务器端不支持此功能(仅客户端支持),但如果您愿意在Java服务器前面放置反向代理,则有解决方法。

如果使用相同的FQDN,则无法执行此操作,因为它允许选择证书。话虽如此,在同一IP地址上为相同的FQDN拥有多个服务器证书通常是没有意义的。支持多个证书的精确用途是在需要支持不同名称时使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接