报错:
[ERROR] 2022-01-13 21:38:45.095 org.apache.dolphinscheduler.api.security.impl.ldap.LdapService:[114] - ldap search error
javax.naming.CommunicationException: simple bind failed: xxx.xx.x.xx:636
Caused by: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present
解决办法
要导入证书:
- 从服务器中提取证书,例如openssl s_client -showcerts -connect AAA.BBB.CCC.DDD:9443 > certs.txt这将提取 PEM 格式的证书。
- 将证书转换为 DER 格式,因为这是 keytool 所期望的,例如 openssl x509 -in certs.txt -out certs.der -outform DER
- 现在您想将此证书导入系统默认的“cacert”文件中。找到 Java 安装的系统默认“cacerts”文件。看看如何获取默认java安装的cacerts的位置?
将证书导入该 cacerts 文件:sudo keytool -importcert -file certs.der -keystore 默认 cacerts 密码为“changeit”。 - 如果证书是为 FQDN 颁发的,并且您尝试通过 Java 代码中的 IP 地址进行连接,那么这可能应该在您的代码中修复,而不是弄乱证书本身。更改您的代码以通过 FQDN 连接。如果您的开发机器上无法解析 FQDN,只需将其添加到您的主机文件中,或使用可以解析此 FQDN 的 DNS 服务器配置您的机器。