x509 spring客户端,证书不好

时间:2016-11-04 19:38:30

标签: ssl soap spring-security x509 maven-jaxb2-plugin

我开发了一个使用x509保护的Spring SOAP Web服务,就像x-509-spring-rest-web-service-tutorial中描述的那样(我为SOAP WS调整了它)。它工作正常。我可以通过浏览器(获取WSDL或检查运行状况)或SOAP UI(发出请求)与服务进行通信。它的SOAP UI配置很棘手。

然后我根据spring-soap-client-tutorial实现了一个spring客户端与服务器通信。它有效。

现在我试图促进与x509的安全通信。我坚持建立。要构建我使用此命令 clean compile \ -Djavax.net.ssl.trustStore=src/main/resources/truststore.jks \ -Djavax.net.ssl.trustStoreType=JKS \ -Djavax.net.ssl.trustStorePassword=password

我得到了例外 Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

我认为我的信任库是不正确的。我把ca与签名的服务器证书放在一起。它应该包含什么?我还能做些什么呢?

1 个答案:

答案 0 :(得分:1)

您需要稳定,可重复的构建,因此不要编译在线资源 制作在线资源的本地副本,并使用catalog files重写绝对URL以指向本地副本。

https://www.acme.com/foo/schema.xsd保存为src/main/resources/www.acme.com/foo/schema.xsd

编写目录文件:

REWRITE_SYSTEM "https://www.acme.com" "www.acme.com"

在你的构建中使用它:

<catalog>src/main/resources/catalog.cat</catalog>
<schemas>
    <schema>
        <url>https://www.acme.com/foo/schema.xsd</url>
    </schema>
</schemas>

我不认为SSL问题值得在这里打架。但请尝试-Djavax.net.debug=all进行调试。