我们的域拥有来自 VeriSign 的证书。但是,我正在尝试对我们的开发环境进行一些测试并不断收到证书错误(因为开发 IP 与我们注册证书的生产 IP 不匹配),这让我非常头疼。我似乎无法确定我遇到的问题是否是所做更改的一部分,或者问题是否源于证书错误。
我曾尝试为 IE 添加注册表项以不关心这些错误,但这似乎无济于事。
无论如何我可以解决这个问题而不必为我的开发环境购买更多证书?
我们的域拥有来自 VeriSign 的证书。但是,我正在尝试对我们的开发环境进行一些测试并不断收到证书错误(因为开发 IP 与我们注册证书的生产 IP 不匹配),这让我非常头疼。我似乎无法确定我遇到的问题是否是所做更改的一部分,或者问题是否源于证书错误。
我曾尝试为 IE 添加注册表项以不关心这些错误,但这似乎无济于事。
无论如何我可以解决这个问题而不必为我的开发环境购买更多证书?
有两种选择。第一个需要对您的代码进行较少的更改,它涉及为您的开发服务器创建新证书,而不是重用生产服务器。您不必购买它们,它们可以自签名。我建议您只使用开发证书创建一个新的 TrustStore,并在运行程序时指定信任库。java -Djavax.net.ssl.trustStore=truststore -Djavax.net.ssl.trustStorePassword=123456 MyApp
您还可以将开发服务器的证书添加到 JDK 的默认 cacerts 文件中,该文件通常在 Windows 上的 C:\Program Files\Java\jre6\lib\security\cacerts 中找到。此选项不太安全,但您不必更改启动客户端的方式。
第二个选项涉及更改您的开发代码以忽略这些错误。这通常涉及创建您自己的 TrustManger 并将其传递到 SSLSocketFactory。这是一个很好的例子:http ://exampledepot.com/egs/javax.net.ssl/TrustAll.html我不喜欢这个选项,因为你可能会向你的项目提交不安全的代码,而这些代码没有验证服务器的证书。