首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSL:两个DNS名称,1个IP,2个证书- Java只看到1并抱怨

SSL:两个DNS名称,1个IP,2个证书- Java只看到1并抱怨
EN

Stack Overflow用户
提问于 2013-07-19 14:26:08
回答 1查看 139关注 0票数 2

我有一个Apache映射到两个外部DNs:

代码语言:javascript
复制
sub1.dn.com
sub2.dn.com

两个映射到同一个IP。

每个都有自己的SSL证书。每个证书都显示CN和SAN作为原样和匹配(即sub1.dn.com表示sub1,而SAN用于sub2)。

但是,当我的Java代码试图连接到sub2.dn.com时,它失败了,因为: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alte r本机DNS名称与sub2.dn.com匹配。

启用Java调试输出显示了一些奇怪的东西--它似乎下载并使用了另一个(sub1)证书!

代码语言:javascript
复制
[3]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
  DNSName: **sub1.dn.com**
]

因此,浏览器似乎很高兴,并且获得了正确的证书。但是Java总是看到sub1.dn.com证书,而不是其他证书。因此,在调用sub2时,它显然与之不匹配。

知道为什么Java会这么做吗?也许还有如何修复它!谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-19 14:37:55

如果在同一个IP上运行了两个HTTPS域,则客户端需要支持SNI (服务器名称指示)来选择正确的证书。请注意,SNi只能使用TLS,因此不支持SSL。

因此,您应该检查是否使用了当前的Java 7支持SNI版本。

在服务器端,确保支持TLS和首选协议。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17748552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档