我使用SSL证书的Axis实现调用webservices。我使用keytool将证书添加到我的密钥库。
显示为"证书已添加到密钥库"。但是当我运行java程序时,我得到以下异常
AxisFault
faultCode:{http://schemas.xmlsoap.org/soap/envelope/} Server.userException faultSubcode: faultString:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径 faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/} stackTrace:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径 在sun.security.ssl.Alerts.getSSLException(未知来源) at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source) 在sun.security.ssl.Handshaker.fatalSE(未知来源) 在sun.security.ssl.Handshaker.fatalSE(未知来源) at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) 在sun.security.ssl.ClientHandshaker.processMessage(未知来源) 在sun.security.ssl.Handshaker.processLoop(未知来源) 在sun.security.ssl.Handshaker.process_record(未知来源) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) 在sun.security.ssl.SSLSocketImpl.startHandshake(未知来源) 在sun.security.ssl.SSLSocketImpl.startHandshake(未知来源) 一个
有关如何在调用Web服务Axis时导入SSL证书的任何建议
答案 0 :(得分:0)
问题可能是证书链未正确导入cacerts文件。 服务器身份验证部分应该很简单。只需将所需的证书粘贴在提供的cacerts信任库中即可。
有关使用keytool与cacerts信任库合作的一些信息,请参阅此http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html。
答案 1 :(得分:0)
感谢您的建议。我的keytool的问题是我的java程序运行的地方和添加我的keytool证书的地方不同。现在我可以调用webservices。
通过keytool添加证书的正确方法
keytool -import -alias(此处为别名)C:\ test \ certificate location -keystore" C:\ Program Files \ Java \ jre7 \ lib \ security \ cacerts"
再次感谢:)