如何解决“证书无效且无法用于验证本网站的身份”错误?

时间:2014-10-17 20:53:23

标签: java security ssl applet ssl-certificate

问题是,如何解决"证书无效,不能用于验证本网站的身份"错误吗

以下是详细信息:

我有一个已经正常工作的签名小程序,直到我将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&#34下载任何广告罐;,但小程序连接到" https://sub.domain.net:9876"发送/接收数据。

applet已正确签名,到目前为止,它符合Java的所有安全要求。当应用程序尝试使用像https://sub.domain.net:9876这样的HTTPS网址进行内部连接时,似乎会发生此问题。那个网站' SSL证书有效,由GoDaddy颁发,但尚未过期。

同样,这在我的JRE更新为8u25后开始发生。我已经测试过将违规URL添加到Java安全例外列表中,但没有成功。

以下是此问题的一些屏幕截图:

这是显示的警告消息: Warning message More information about the warning message Certificate basic information 1 Certificate basic information 2


修改2014年10月18日:

问题发布在" Oracle社区"也是,增加答案选项: Question in Oracle Community


修改2014年10月21日:

我注意到了这一点:当我点击链接"更多信息"显示在"安全警告"对话框,显示的原因是:

  

正在从该网站以外的网站下载该应用程序   由安全证书指定。

     
      
  • 从" sub.domain.net下载"

  •   
  • 期待" *。DOMAIN.NET"

  •   

此消息表示该应用程序正在下载来自" sub.domain.com",这是错误的。应用程序(applet)已经下载,它只在内部HTTPS请求中使用该域,以获取/发送业务数据,而不是下载其他Jars,JNLP等。

2 个答案:

答案 0 :(得分:2)

我找到了如何解决此问题,并感谢Steffen Ullrich提供了有效的提案。

这与证书的公用名(CN)值有关。就我而言,该值为*.DOMAIN.NET,并将其更改为*.domain.net,我们所要做的就是一个名为" Domain Transfer"的过程。这意味着,要将CN更改为*.REKEY.DOMAIN.NET,然后再将其更改为*.domain.net。我们无法直接将其更改为*.domain.net,因为证书提供商说*.DOMAIN.NET*.domain.net是相同的。

现在,这个问题只发生在Java 7.71和Java 8.25上。以前版本的Java 7和8没有这个问题(CN的SSL证书限制在不同的外壳中)。

无论如何,这解决了这个问题,现在我们收到一个关于域名的温和信息:

Notification Message after the certificate CN change

答案 1 :(得分:0)

如果您信任您正在访问的证书和网站,请点击继续以获取此消息。

但是,除非您绝对信任该网站,否则这是一个红旗警告,您可能无法访问您认为自己的页面,并且可能存在严重的安全风险。这就是它警告你的原因。 A"通配符证书",如果确实可行,那将是一个坏主意,除非它将自己局限于一组非常具体和有限的域。

我怀疑这是区分大小写的。