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