我正在服务A和服务B之间实现相互SSL。服务A使用单向和双向SSL。用于用户和网站A之间通信的单向方式,以及用于以安全方式将来自该用户的请求转发到服务B的双向SSL。
服务A中的单向SSL在Tomcat server.xml中指定。双向SSL是在客户端(服务A)和Tomcat配置(服务B)上使用JSEE安全套接字通信实现的。自动取款机。当我尝试访问服务A时,我收到 ssl_error_rx_record_too_long 错误。
根据这个答案ssl_error_rx_record_too_long and Apache SSL,其中一个原因可能是我为同一个IP使用了多个SSL证书。这种情况真的是你不能为多个证书使用相同的IP吗?即使一个证书是服务器证书(用于单向SSL)而另一个证书是客户端证书(用于双向SSL)?
这可能不是我的问题的原因,但我只是想确定实际上是否可以为同一个FQDN提供多个证书。谢谢你的帮助!
答案 0 :(得分:0)
ssl_error_rx_record_too_long
通常与证书配置无关,但是在该端口上正在讨论的内容实际上并未使用SSL / TLS。
question you linked to中的答案(甚至是对问题的更新)也指出了这个问题(例如,缺少SSLEngine on
)。您可能在连接器配置中忘记了SSLEnabled="true"
之类的内容。
正如我在an answer to your other question中所说,能够在同一IP地址上配置两个服务器证书对您的案例来说并不是真正的问题。
实际上可以为同一个FQDN提供多个证书
可以使用服务器名称指示TLS扩展在同一IP地址和端口上配置多个证书,但服务器和客户端都需要支持它。特别是,服务器端的Java 7中的JSSE(仅在客户端)不支持这一点,但是如果您愿意在Java服务器前放置反向代理,则有一些解决方法。
使用相同的 FQDN无法做到这一点,因为它允许选择证书。这就是说,在同一IP地址上为同一FQDN提供多个服务器证书通常是没有意义的。当您需要支持不同的名称时,支持多个证书非常有用。