【发布时间】:2014-11-19 09:25:23
【问题描述】:
我正在从 Websphere 8.x 转换到 JBoss 7.1,但在将 SSL 证书导入 JBoss 7.1 时遇到问题。我们通过 SSL 使用外部供应商网络服务。
在 Websphere 中,我会这样做:
将供应商添加到本地 WAS 信任存储:
使用管理控制台中的 Retrieve from port 选项来检索证书并解决问题。
完成以下步骤:
- 登录到管理控制台。
- 展开安全并单击 SSL 证书和密钥管理。 在配置设置下,单击管理端点安全配置。
- 选择适当的出站配置以进入 (cell):E4GT82WNode03Cell:(node):E4GT82WNode03 管理范围。
- 在相关项目下,单击密钥存储和证书,然后单击 NodeDefaultTrustStore 密钥存储。
- 在其他属性下,单击签名者证书和从端口检索。
- 在主机字段中,在主机名字段中输入 services.vendor.com,在端口字段中输入 443,在别名字段中输入 services.vendor.com_cert。
- 单击检索签名者信息。
- 验证证书信息是否适用于您可以信任的证书。
- 点击应用并保存。
但在 JBoss 中,看起来并没有这种能力。我一直在使用 openssl、keytool 来创建、将证书添加到密钥库并尝试对standalone.xml 文件进行更改。我尝试了很多不同的东西,这些东西在不同的搜索结果中得到了建议,我已经尝试了无数个小时来试图弄清楚这一点。
我收到此错误:
13:08:50,801 错误 [org.jboss.as.controller.management-operation] 操作(“添加”)失败 - 地址:([ (“子系统”=>“网络”), (“连接器”=>“https”), ("ssl" => "configuration") ]) - 失败描述:“JBAS014803: Duplicate resource [ (\"子系统\" => \"网络\"), (\"连接器\" => \"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>
我的问题是: 如何像 Websphere 一样在 JBoss 中配置多个 SSL 证书?
【问题讨论】: