首页 文章

Mirth:使用客户端证书调用SSL SOAP Web服务

提问于
浏览
1

该场景是在Mirth内调用外部SSL SOAP Web服务 . Web服务需要SSL / TLS连接以及客户端证书 .

目的是使用内置的SOAP Sender Destination来调用远程安全Web服务,并以某种方式包含该客户端证书 .

我知道您首先需要将该客户端证书安装到Java运行时 . 这可能位于Java运行时的证书存储区或Jetty certstore中 .

该平台:

  • Windows 2003 SP2

  • Mirth 1.8

  • Java jre1.5.0_09 Question :当您调用SSL保护的Web服务时,您建议成功拥有Mirth SOAP Sender的配置步骤(Mirth,JRE证书存储等)包括客户端证书(* .cer)?

3 回答

  • 0

    如果设置了某些系统属性,Java运行时(或更具体地说,Sun JSSE提供程序)将显示客户端证书 . 您可以在JSSE Reference Guide,中阅读详细信息,但重要的属性是 javax.net.ssl.keyStorejavax.net.ssl.keyStorePassword .

    这种方法有一些缺点 . 首先,将密钥库密码设置为系统属性使其可以访问在该进程中运行的任何代码 - 尽管如果安装了 SecurityManager ,则可以对其进行控制 . 其次,这些设置将用于通过"default" SSLContext 创建的任何SSL套接字 . 如果您需要不同 endpoints 的不同凭据,则需要特定于Mirth的解决方案 .

    问题中没有指定起点,但如果从头开始,最简单的方法是创建一个新的Java密钥库(“JKS”格式)并生成一个新密钥对和一个CSR . 将CSR发送到CA并获取证书后,将其导入同一个密钥库 . 该密钥存储区已准备就绪 .

    如果证书已经可用,则可能与PKCS#12格式(.p12或.pfx文件)中的相应私钥一起存储 . 这些可以由Java应用程序直接使用,但 javax.net.ssl.keyStoreType 属性需要设置为 "PKCS12"

  • 1

    在调用SOAP Web服务时,Mirth 1.8无法发送客户端证书 .

  • 3

    我为此迟到了一点,但实际上有可能 . 通过向JVM发送一些配置参数,您可以使底层SOAP引擎切换到HTTP并提供适当的证书 .

    有关配置VM的参数设置的详细信息,请参阅此问题

    Java HTTPS client certificate authentication

    你会发现有很多东西需要照顾 . 通常,一旦您正确配置了证书,HTTP和客户端身份验证就应该“正常工作” . 但是有一些服务器对B2B风格的客户不太友好,所以你必须要小心 .

    使用JDK 6_21并对证书进行了一些调整,我能够让其中一台服务器运行起来,但是在我们这边需要大约15分钟在服务器上正确配置的东西很长很痛苦 .

    这是另一个解决这个问题的问题(客户端认证对不友好的服务器) .

    Client SSL authentication causing 403.7 error from IIS

相关问题