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