我使用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>
这两个都不适合我。第三种解决方案是使用参数"- dog .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>