如何配置 Wildfly 8.2 以禁用 ssl 连接上的通用名称验证(CXF disableCNCheck)?

How to configure Wildfly 8.2 to disable Common Name verification on ssl connections (CXF disableCNCheck)?

我正在使用 Wildfly 8.2 来托管工作中的应用程序,此应用程序需要在某些时候访问仅允许 SSL 连接的 Web 服务。 Web 服务不属于我的公司,我无法更改其任何配置。此 Web 服务使用自签名 SSL 证书,该证书具有不同于 Web 服务域的通用名称 (CN)。

我已将 Web 服务的证书添加到 JVM 密钥库,但 Wildfly 服务器不允许完成连接,因为 Web 服务证书上的通用名称与其上的域名不同url.

因此,为了让我的应用程序能够完成 SSL 连接,我需要禁用 wildfly 的通用名称验证。 这就是问题所在,我只找到了一些关于如何禁用 属性,3 更精确的解决方案。前两个涉及向 standalone.xml 配置文件添加一些额外的行,更准确地说,它们都建议我在 "extensions" 之后添加一个 "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>

None 这两个对我有用。第三个解决方案是在我初始化服务器时使用参数“-Dorg.jboss.security.ignoreHttpsHost=true”,这也没有效果。

如何在 wildfly 8.2 上禁用此通用名称检查?

对于 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>