我正在使用Wildfly 8.2在工作中托管应用程序,此应用程序在某些时候需要访问仅允许SSL连接的Web服务。 Web服务不属于我的公司,我无法更改其任何配置。此Web服务使用自签名SSL证书,该证书具有与Web服务的域不同的公用名(CN)。
我已将Web服务的证书添加到JVM密钥库,但Wildfly服务器不允许通过Web服务证书上的公用名与其URL上的域名不同来完成连接。
因此,为了使我的应用程序能够完成SSL连接,我需要禁用wildfly的通用名称验证。 这就是问题到来的地方,我发现只有一些关于如何禁用该属性的解决方案,3更准确。前两个涉及在standalone.xml配置文件中添加一些额外的行,更准确地说,它们都建议我在“扩展”之后添加“system-properties”标记。
第一个:
<extensions>
...
</extensions>
<system-properties>
<property name="cxf.tls-client.disableCNCheck" value="true"/>
</system-properties>
第二个:
<extensions>
...
</extensions>
<system-properties>
<property name="org.jboss.security.ignoreHttpsHost" value="true"/>
</system-properties>
这两个都不适合我。第三个解决方案是在初始化服务器时使用参数“-Dorg.jboss.security.ignoreHttpsHost = true”,这也没有效果。
如何在wildfly 8.2上禁用此常用名称检查?
答案 0 :(得分:1)
对于wildfly,请在standalone.xml中设置以下系统属性
<property name="java.protocol.handler.pkgs" value="com.sun.net.ssl.internal.www.protocol"/>
<system-properties>
<property name="java.protocol.handler.pkgs" value="com.sun.net.ssl.internal.www.protocol"/>
<property name="org.jboss.security.ignoreHttpsHost" value="true"/>
<property name="cxf.tls-client.disableCNCheck" value="true"/>
</system-properties>