Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 欢笑:使用客户端证书调用SSL SOAP web服务_Java_Web Services_Ssl_Client Certificates_Mirth - Fatal编程技术网

Java 欢笑:使用客户端证书调用SSL SOAP web服务

Java 欢笑:使用客户端证书调用SSL SOAP web服务,java,web-services,ssl,client-certificates,mirth,Java,Web Services,Ssl,Client Certificates,Mirth,该场景是从Mirth中调用外部sslsoapweb服务。web服务需要SSL/TLS连接和客户端证书 其目的是使用内置的SOAP发送方目的地调用远程安全web服务,并以某种方式包含该客户端证书 我知道您首先需要将该客户机证书安装到Java运行时中。这可能在Java运行时的证书存储或Jetty证书存储中 平台: Windows 2003 SP2 欢乐1.8 Java jre1.5.0_09 问题:在调用受SSL保护的web服务时,您建议成功地让Mirth SOAP发送器包含客户端证书(*.ce

该场景是从Mirth中调用外部sslsoapweb服务。web服务需要SSL/TLS连接和客户端证书

其目的是使用内置的SOAP发送方目的地调用远程安全web服务,并以某种方式包含该客户端证书

我知道您首先需要将该客户机证书安装到Java运行时中。这可能在Java运行时的证书存储或Jetty证书存储中

平台:

  • Windows 2003 SP2
  • 欢乐1.8
  • Java jre1.5.0_09

问题:在调用受SSL保护的web服务时,您建议成功地让Mirth SOAP发送器包含客户端证书(*.cer)的配置步骤(Mirth、JRE证书存储等)?

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

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

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


如果证书已经可用,则它很可能存储在PKCS#12格式(.p12或.pfx文件)的相应私钥中。Java应用程序可以直接使用这些属性,但是如果设置了某些系统属性,则需要将
javax.net.ssl.keyStoreType
属性设置为
“PKCS12”

Java运行时,或者更具体地说,Sun JSSE提供程序将提供客户端证书。您可以在中阅读详细信息,但重要的属性是
javax.net.ssl.keyStore
javax.net.ssl.keystrepassword

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

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


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

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

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

我在这方面有点晚了,但实际上它可能会。通过向JVM发送一些配置参数,您可以让底层SOAP引擎切换到HTTPs并提供适当的证书

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

你会注意到有很多事情需要处理。通常,HTTPs和客户端身份验证应该在正确配置证书后“正常工作”。但是有一些服务器对B2B风格的客户端不太友好,所以你必须小心

使用JDK 6_21和对证书的一些调整,我能够让其中一台服务器正常工作,但对于我们来说,在服务器上正确配置大约需要15分钟,这是一件漫长而痛苦的事情

下面是解决这个问题的另一个问题(针对不友好服务器的客户端身份验证)


我来晚了一点,但实际上有可能。通过向JVM发送一些配置参数,您可以让底层SOAP引擎切换到HTTPs并提供适当的证书

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

你会注意到有很多事情需要处理。通常,HTTPs和客户端身份验证应该在正确配置证书后“正常工作”。但是有一些服务器对B2B风格的客户端不太友好,所以你必须小心

使用JDK 6_21和对证书的一些调整,我能够让其中一台服务器正常工作,但对于我们来说,在服务器上正确配置大约需要15分钟,这是一件漫长而痛苦的事情

下面是解决这个问题的另一个问题(针对不友好服务器的客户端身份验证)