ssl - x509 spring 客户端,证书错误

标签 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 的安全通信。我坚持构建。要构建我使用这个命令 清理编译\ -Djavax.net.ssl.trustStore=src/main/resources/truststore.jks\ -Djavax.net.ssl.trustStoreType=JKS\ -Djavax.net.ssl.trustStorePassword=密码

我得到异常 引起:javax.net.ssl.SSLHandshakeException:收到致命警报:bad_certificate

我想我的信任库不正确。我把带有签名服务器证书的 ca 放在那里。它应该包含什么?我还做错了什么?

最佳答案

您想要稳定、可重复的构建,所以不要编译在线资源。
制作在线资源的本地副本并使用 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 来调试它。

关于ssl - x509 spring 客户端,证书错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40430579/

相关文章:

SSL 对所有主机都失败。 (SSL证书问题: self signed certificate in certificate chain)

java - CertPathValidator 和 CertPathBuilder 之间的概念区别是什么?

带有公司签名 SSL 证书的 Python setuptools

wcf - 修改 WCF 客户端中的 SOAP header Mustunderstand 属性

asp.net-mvc - Travelport 通用 API 确认航空预订 代理 ID 异常

java - spring security 从同一个ip地址多次登录

ssl - 在我的本地浏览器中仅针对多个域忽略一次通配符自签名证书警告

web-services - SOAP UI : Mock service that not returning response

spring boot 执行器为执行器端点返回 401

java - 为什么我无法将编码后的密码与spring security匹配?