我正在制作cfhttp以连接到加密页面。似乎对某些网站工作正常。
I/O Exception: Name in certificate `pro.test.com' does not match host name `go.test.com'
即使主机名不匹配,是否存在信任此证书的解决方法?
答案 0 :(得分:8)
认为这是更多的Java问题,解决方法应该影响JRE。
不确定这是否适用于您的情况,但可能的解决方案是将此证书导入JRE密钥库。
可在Sun website找到通用说明。虽然过程非常简单。
首先,您应该使用浏览器导航所需的HTTPS URL并使用SSL属性导出证书(不记得在IE中如何完成,但在Firefox中,如安全>查看证书>详细信息>另存为 - 仍然不确定,因为使用非英语的licalization),任何X.509类型都应该有效。
接下来,您应该使用keytool导入它。导航到当前CF JRE的bin,执行以下命令(用您的值替换参数)并重新启动CF:
keytool -keystore <path to keystore> -import -file <path to certificate> -alias <alias>
顺便说一句,这里有一个UI tool,但是我还没有用它,所以不能说它是否正常。
答案 1 :(得分:0)
可能正在运行的网站拥有来自受信任机构的有效SSL证书。
如果您拥有pro.test.com的控制权,首选答案是获得安装pro.test.com的有效证书。但如果出于某种原因无法做到这一点,我会看到另外两个选择:
1)尝试通过https尝试连接的try / catch,并在发生SSL错误时返回http。显然,这将消除失败连接的加密。
或
2)使用Sergii的解决方案将该站点的密钥导入Java密钥库。
答案 2 :(得分:0)
如果go.test.com只是一个开发服务器,那么在这种情况下,您可以创建自签名证书并将其导入Java密钥库。这样,您可以通过不向CA付款并更快地解决问题来节省成本