我正在尝试通过 JAAS 将应用程序身份验证从 LDAP(工作正常)切换到 LDAPS。该应用程序在 JVM 上运行。我遵循了供应商操作指南(Rundeck - jaas LDAPS 配置问题),但我遇到了问题。
从日志:
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: javax.net.ssl.SSLPeerUnverifiedException: Certificate for <ActiveDirectoryIP> doesn't match any of the subject alternative names: <ActiveDirectoryFQDN>
我注意到 DNS 中的 ActiveDirectoryFQDN 是小写的,但在从 openssl s_client 命令导入的 cert/pem 中是大写的。SSL 证书不应该区分大小写,但也许 Java 会以其他方式处理它?作为一种解决方法,我尝试在 /etc/hosts 中为 ActiveDirectoryFQDN 添加大写条目,并将 /etc/nsswitch 修改为:
hosts: files [success=return] dns
但没有喜悦。我无法修改 DNS。
是否有理由忽略 SSLHandshakeException 错误和/或通常禁用 JVM 的 SSL 验证(通过 OPTS)?