运行maven 3.0.5时,Nexus的https证书被拒绝,错误为:
hostname in certificate didn't match: <new.domain.com> != <*.old.domain.com> OR ..
这在早期的maven版本(例如3.0.3)中不会发生,我注意到3.0.5的修复似乎与我的问题相匹配:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-0253
我已经通过Chrome等查看了证书,看起来没问题。在调试中运行maven (-X)不会给我提供更多信息。
(我知道这是一个关于Apache/Nexus的问题)。还有--这是几个其他服务使用的通配符SSL证书,也是由同一Apache实例代理的。
有什么想法吗?
发布于 2015-06-12 21:08:31
好的。问题解决了。
在阅读了Apache HTTPS和虚拟主机以及HTTP代理的速成课程后,我明白了这一点。
简单地说: Apache不能支持具有不同SSL证书的多个虚拟主机。这是因为用于代理请求的Host-header是加密的,所以我们处于生死存亡的境地。
我们对Apache进行了如下配置,因为我们想要将旧域名重定向到新域名。在这种情况下,Apache只使用为第一个虚拟主机设置的证书:https://wiki.apache.org/httpd/NameBasedSSLVHosts。
那么为什么Chrome获得了正确的证书呢?看起来Chrome (和Apache)支持TLS扩展,它会在Client Hello中发送未加密的主机名(例如第一条SSL消息)。因此,Apache知道要发回哪个虚拟主机(例如证书)。
问题解决了。
我们现在将首先设置我们的新域虚拟主机,最后设置我们的旧重定向。这将使具有TLS扩展的客户端能够100%地工作,同时它将使其他客户端能够为我们的新域工作。
https://stackoverflow.com/questions/30802642
复制相似问题