Java https URL主机名与服务器证书上的公用名称(CN)不匹配
我得到以下错误Java https URL主机名与服务器证书上的公用名称(CN)不匹配,java,web-services,Java,Web Services,我得到以下错误 javax.xml.ws.soap.SOAPFaultException: Marshalling Error: The https URL hostname does not match the Common Name (CN) on the server certificate. To disable this check (NOT recommended for production) set the CXF client TLS configuration proper
javax.xml.ws.soap.SOAPFaultException: Marshalling Error: The https URL hostname does not match the Common Name (CN) on the server certificate. To disable this check (NOT recommended for production) set the CXF client TLS configuration property "disableCNCheck" to true.
当我尝试连接和使用Web服务时
我在cxf.xml中添加了以下几行,但仍然不起作用
<http-conf:conduit name="*.http-conduit">
<!-- deactivate HTTPS url hostname verification (localhost, etc)
WARNING ! disableCNcheck=true should NOT be used in production -->
<http-conf:tlsClientParameters disableCNCheck="true" />
cxf.xml文件位于WEB-INF/classes/CxfService下
请告诉我会有什么问题 此配置可能没有实际问题。您在web服务的URL中使用的主机名与证书中的主机名不匹配,但这可能是由于一些合法的原因,同时仍然允许访问正确的数据 SSL提供两种保护
- 没有任何保护措施
- 加密通道,因此没有人可以看到您的数据
- 加密通道,以及确保您已连接到您希望连接的站点
这就是潜在的问题:有人可能会欺骗您正在调用的web服务。安全专家永远不会建议采取折衷的立场,但您应该评估数据的价值、欺骗服务的可能性以及此类欺骗可能造成的损害。如果这是一个重大问题,那么您必须使用与证书匹配的主机名,或者您必须获得与您使用的主机名匹配的证书。cxf.xml文件不应该直接位于
WEB-INF/classes
下吗?@Peter,感谢您的回复,但是cxf.xml的位置在这里重要吗,因为它在WEB-INF/classes下是1级?@Peter:我尝试过将cxf.xml文件放在WEB-INF/classes下,但也没有帮助。还是一样的消息。也许是个愚蠢的问题,但是:你不能修复SSL证书吗?@miniBill:谢谢。我给出了一个错误的URL,并解决了它。