我正在从Websphere 8.x转换为JBoss 7.1,但我无法将SSL证书转换为JBoss 7.1。我们通过SSL使用外部供应商Web服务。
在Websphere中我会这样做:
将供应商添加到本地WAS信任库:
使用管理控制台中的“从端口检索”选项来检索证书并解决问题。
完成以下步骤:
但是在JBoss中看起来并不像这种能力。我一直在使用openssl,keytool进行创建,将证书添加到密钥库并尝试更改standalone.xml文件。我已经尝试了很多不同的搜索结果,这些搜索结果已经尝试过并花了无数个小时试图解决这个问题。
我收到此错误:
13:08:50,801 ERROR [org.jboss.as.controller.management-operation] 操作("添加")失败 - 地址:([ ("子系统" =>" web"), ("连接器" =>" https"), (" ssl" =>"配置")]) - 失败描述:" JBAS014803:重复资源[ (\" subsystem \" => \" web \"), (\" connector \" => \" https \"), (\" ssl \" => \"配置\")]"
引发错误:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl key-alias="jbosscerts" password="secret" certificate-key-file="D:\opt\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" certificate-file="C:/jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" cipher-suite="ALL" protocol="TLSv1"/>
<ssl key-alias="vendor1.com_cert" password="secret" certificate-key-file="C:\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" certificate-file="C:\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" cipher-suite="ALL" protocol="TLSv1"/>
<ssl key-alias="vendor2.com_cert" password="secret" certificate-key-file="D:\opt\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" certificate-file="C:\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" cipher-suite="ALL" protocol="TLSv1"/>
</connector>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>
不会抛出错误:
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true">
<ssl key-alias="jbosscerts" password="secret" certificate-key-file="D:\opt\jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" certificate-file="C:/jboss-as-7.1.1.Final\keystore\jbosscertstore.keystore" cipher-suite="ALL" protocol="TLSv1"/>
</connector>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>
我的问题是: 如何在JBoss中配置多个SSL证书,如Websphere?
答案 0 :(得分:2)
您需要为此添加系统属性。所以基本上在standalone.xml
标记之后的<extensions>....</extensions>
添加以下代码:
<system-properties>
<property name="javax.net.ssl.trustStore" value="<location of cert>"/>
</system-properties>
<location of cert>
是Java密钥库文件的位置,其中包含此应用程序进程(信任库)信任的CA证书集合。请注意,在Windows上,指定的路径名必须使用正斜杠/
代替\
。