我们正在与Google重新合作,并在导入相应的证书(使用java应用程序)后,我们仍然有错误:
_ea.GetEvent<MessageEvent>().Subscribe(GetUsername);
我们正在使用JDK_1.7.51和Tomcat8。
我们列出了证书,并且可以看到证书存在且有效,即使我们仍然有前面提到的例外:
别名:google.com创建日期:7-aug-2017条目类型: trustedCertEntry
所有者:CN = www.google.com,O = Google Inc,L = Mountain View, ST = California,C = US Issuer:C = DE,CN = AXA-DE-Proxy-Issuing-CA17, OU = IF-NDSG,O = AXA Technology Services Germany GmbH序列号: d21265bf38c9faf8d615fbbf840aaa1fc6959dc5bbff60a48f77e355fa2eac07bccb6c6d
有效期:星期三7月12日星期三14:25:22 CEST 2017直到:星期三10月04日13:57:00 CEST 2017
证书指纹:MD5: 52:73:92:40:38:DF:AB:2B:ED:5B:19:10:00:1D:57:7C SHA1: 76:F8:DC:99:CD:07:F8:81:4F:E5:48:C3:F4:4F:71:46:24:CE:F3:54 SHA256: 9B:72:1F:69:85:4C:AD:20:39:16:D4:7A:12:62:0D:8B:03:EC:8B:2F:E8:FD:40:FA:2E: D2:0E:F3:6A:1F:34:59 签名算法名称:SHA256withRSA版本:3
有人可以帮助我吗?
答案 0 :(得分:1)
您的客户端位于防火墙后面并通过代理执行HTTPS请求,该代理为所联系的站点动态生成SSL证书,以便收集正在交换的数据。你可以看到你正在检查的“Google证书”发行人:
Issuer: C=DE, CN=AXA-DE-Proxy-Issuing-CA17, OU=IF-NDSG, O=AXA Technology Services Germany
Java有自己的root-CA-keystore,其中标准证书检查正在查找受信任的根CA,并且那里显然缺少了eavsdropper的根证书。
要摆脱此错误并让java客户端错误地认为证书是由受信任的CA签名,您需要add the CAs root certificate to the root keystore of Java。另一种解决方案是使用您自己的TrustManager建立SSL连接。你可以通过using your own SSLContext where you set trust- and keymanagers yourself来做到这一点。
前者需要在每个Java安装中完成,后者在应用程序中工作。