Ssl 为什么即使verifyHostname为false也要进行主机名验证?

Ssl 为什么即使verifyHostname为false也要进行主机名验证?,ssl,websphere-liberty,open-liberty,Ssl,Websphere Liberty,Open Liberty,在尝试让secure rest服务在容器中的Open Liberty上工作时,我遇到以下错误: CWPKI0824E:SSL握手失败:连接到主机[主机名]时发生主机名验证错误。用于访问服务器的主机名与服务器证书的SubjectDN或Subject备用名称信息不匹配。来自SSL握手异常的扩展错误消息为:[未找到与主机名匹配的名称] server.xml的相关部分: <featureManager> <feature>appSecurity-3.0</featu

在尝试让secure rest服务在容器中的Open Liberty上工作时,我遇到以下错误: CWPKI0824E:SSL握手失败:连接到主机[主机名]时发生主机名验证错误。用于访问服务器的主机名与服务器证书的SubjectDN或Subject备用名称信息不匹配。来自SSL握手异常的扩展错误消息为:[未找到与主机名匹配的名称]

server.xml的相关部分:

<featureManager>
    <feature>appSecurity-3.0</feature>
    <feature>jca-1.7</feature>
    <feature>jdbc-4.1</feature>
    <feature>jndi-1.0</feature>
    <feature>localConnector-1.0</feature>
    <feature>mpConfig-1.3</feature>
    <feature>passwordUtilities-1.0</feature>
    <feature>ssl-1.0</feature>
    <feature>transportSecurity-1.0</feature>
</featureManager>

<sslDefault sslRef="DefaultSSLConfig" httpHostNameVerification="false"/>

<ssl id="DefaultSSLConfig" keyStoreRef="DefaultKeyStore" trustStoreRef="DefaultTrustStore" trustDefaultCerts="true" verifyHostname="false"/>

<keyStore id="DefaultKeyStore" location="liberty-default-key.p12" type="PKCS12" password="password"/>
<keyStore id="DefaultTrustStore" location="liberty-default-trust.p12" type="PKCS12" password="password"/>

<ldapRegistry id="ldapRegistry" realm="Standalone LDAP Registry" ldapType="IBM Tivoli Directory Server"
    host="server" port="123"
    baseDN="baseDN" bindDN="bindDN" bindPassword="password"
    recursiveSearch="true"
    sslEnabled="true" sslRef="DefaultSSLConfig">
    <idsFilters>
        ...
    </idsFilters>
</ldapRegistry>

appSecurity-3.0
jca-1.7
jdbc-4.1
jndi-1.0
localConnector-1.0
mpConfig-1.3
passwordUtilities-1.0
ssl-1.0
运输安全-1.0
...
正如您所看到的,verifyHostname的值为“false”,但检查仍然完成。
我缺少什么?

JDK单独处理LDAP,默认情况下JDK启用主机名验证。要禁用LDAP主机名验证,需要将系统属性com.sun.jndi.LDAP.object.disableEndpointIdentification设置为true。因此,在服务器目录的jvm.options中,添加-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true以禁用ldap连接上的主机名验证。

JDK单独处理ldap,默认情况下由JDK启用主机名验证。要禁用LDAP主机名验证,需要将系统属性com.sun.jndi.LDAP.object.disableEndpointIdentification设置为true。因此,在服务器目录的jvm.options中添加-Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true以禁用ldap连接上的主机名验证