如何解决“证书无效且无法用于验证本网站的身份”错误?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决“证书无效且无法用于验证本网站的身份”错误?相关的知识,希望对你有一定的参考价值。
问题是,如何解决“证书无效且无法用于验证本网站的身份”错误?
以下是详细信息:
我有一个已经正常工作的签名小程序,直到我将Java更新为8u25(1.8.0_25-b18)。现在,应用程序显示一条警告消息“您要继续吗?与此网站的连接不受信任”。这条消息中也有一个注释,“The certificate is not valid and cannot be used to verify the identity of this website
”。
小程序加载没有问题。但是,当用户尝试使用该应用程序的特定功能时,将显示警告消息。
发生这种情况时我检查了java控制台,并在这些行后面显示此警告消息:
security: Obtain certificate collection in SSL Root CA certificate store
security: Invalid certificate from HTTPS server
network: Cache entry not found [url: https://sub.domain.net:9876, version: null]
该应用程序从另一个域下载,比如说“https://app.domain.net/ .....”,所以没有从“https://sub.domain.net:9876”下载罐子,但是applet连接到“https://sub.domain.net:9876”来发送/接收数据。
applet已正确签名,到目前为止,它符合Java的所有安全要求。当应用程序尝试使用像https://sub.domain.net:9876
这样的HTTPS网址内部连接时,似乎会发生此问题。该网站的SSL证书有效,由GoDaddy发布,但尚未过期。
再次,这在将我的JRE更新为8u25后开始发生。我已经测试过将有问题的URL添加到Java安全例外列表中,但没有成功。
以下是此问题的一些屏幕截图:
这是显示的警告消息:
编辑2014年10月18日:
问题也发布在“Oracle社区”中,以增加答案选项:Question in Oracle Community。
编辑2014年10月21日:
我注意到了这一点:当我点击“安全警告”对话框中显示的“更多信息”链接时,显示的原因显示:
正在从安全证书指定的站点以外的站点下载该应用程序。
- 从“sub.domain.net”下载
- 期待“* .DOMAIN.NET”
此消息表示应用程序正在从“sub.domain.com”下载,这是错误的。应用程序(applet)已经下载,它只在内部HTTPS请求中使用该域,以获取/发送业务数据,而不是下载其他Jars,JNLP等。
我找到了如何解决这个问题,并感谢Steffen Ullrich提出有效的建议。
这与证书的公用名(CN)值有关。在我的情况下,该值是*.DOMAIN.NET
,并将其更改为*.domain.net
,我们所要做的只是一个名为“域转移”的过程。这意味着,要将CN更改为*.REKEY.DOMAIN.NET
,然后再将其更改为*.domain.net
。我们无法直接将其更改为*.domain.net
,因为证书提供商称*.DOMAIN.NET
和*.domain.net
是相同的。
现在,这个问题只发生在Java 7.71和Java 8.25上。以前版本的Java 7和8没有此问题(CN在不同外壳中的SSL证书限制)。
无论如何,这解决了这个问题,现在我们收到一个关于域名的温和信息:
如果您信任该证书和您正在访问的网站,请单击“继续”以通过此消息。
但是,除非您绝对信任该网站,否则这是一个红旗警告,您可能无法访问您认为自己的页面,并且可能存在严重的安全风险。这就是它警告你的原因。如果确实可能的话,“通配符证书”将是一个坏主意,除非它将自己局限于一组非常具体和有限的域。
我怀疑这是区分大小写的。
以上是关于如何解决“证书无效且无法用于验证本网站的身份”错误?的主要内容,如果未能解决你的问题,请参考以下文章