我有 IBM WAS 8.5.5.9 ND 和 MS Exchange 服务器,我尝试使用 EWS Java API 访问它们。部署管理器设置在一台计算机上,我的应用程序服务器和 java 应用程序在另一台计算机上运行。
ExchangeService service = new ExchangeService();
ExchangeCredentials credentials = new WebCredentials("username", "password", "host");
service.setCredentials(credentials);
service.setUrl(URI.create("https://xxxxxxxxx/EWS/Exchange.asmx"));
List msgList = new ArrayList();
Folder folder = Folder.bind(service, WellKnownFolderName.Inbox);
FindItemsResults results = service.findItems(folder.getId(), new ItemView(5));
List items = results.getItems();
service.close();
但是我的应用程序无法访问 MS Exchange。 HTTPS 连接问题:
The request failed. The request failed. com.ibm.jsse2.util.j: PKIX path building failed: java.security.cert.CertPathBuilderException: PKIXCertPathBuilderImpl could not build a valid CertPath.; internal cause is:
java.security.cert.CertPathValidatorException: The certificate issued by CN=XXX Root CA, O=XXX, C=ES is not trusted; internal cause is:
java.security.cert.CertPathValidatorException: Certificate chaining error
我创建了这份 IBM 指南 ( http://www-01.ibm.com/support/docview.wss?uid=swg21592616 )。
我从我的 Firefox 浏览器下载了根证书和中间证书,可以使用它们访问 OWA。将它们安装在 NodeDefaultTrustStore 中,甚至在 CellDefaultTrustStore 中,重新加载我的应用程序服务器并在其上运行 java EWS API。但还是有这个问题。
我做错了什么?也许我错过了什么?此问题是否与 IBW WAS 和信任库设置有关,或者只是我的证书错误?我应该将此证书添加到 java truststore 吗?添加歌手证书时别名字段的值重要吗(我为除受信任之外的中间证书设置了别名值)?
最佳答案
为了解决这个问题,我还必须在 java truststore 中添加根证书和中间证书
关于java - IBM WAS HTTPS 连接证书链错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44943451/