java.security.cert.CertificateException: No subject alternative names matching IP address **** found
报错解释:
java.security.cert.CertificateException: No subject alternative names matching
这个错误表明Java在验证SSL证书时,发现SSL证书中没有包含足够的主题备用名称(Subject Alternative Names, 简称SAN)信息来匹配正在连接的服务器的名称。
解决方法:
- 检查你正在连接的服务器的域名或IP地址是否正确。
- 检查SSL证书是否正确安装在服务器上。
- 确保SSL证书中包含服务器的域名或IP地址作为主题备用名称(SAN)。如果证书是自签名的,你需要更新证书以包含正确的SAN。
- 如果你是客户端的开发者,并且只是在开发环境遇到这个问题,可以考虑临时禁用主机名验证作为一种快速的解决方案,但请注意这会降低安全性。
示例代码禁用主机名验证(仅建议用于开发环境):
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
public class Utils {
public static void disableSSLVerification() {
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
}
}
调用disableSSLVerification()
方法可以临时禁用主机名验证。
评论已关闭