我尝试生成自签名 SSL 证书,但在 cas sso 中出现以下错误:
java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present
我正在使用 open jdk 7 并使用了以下命令:
keytool -genkey -alias axyz -keypass changeit -keyalg RSA -ext san=ip:192.168.1.4
keytool -export -alias axyz -keypass changeit -file axyz.crt
keytool -import -file axyz.crt -alias axyz -keystore/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/security/cacerts
主机名:vaapdev 内部IP地址:192.168.1.4 公网IP地址:108.51.62.36
不确定我哪里出错了,我在 -ext 中同时尝试了 192.168.1.4 和 108.51.62.36 尝试不使用 -ext 参数。
最佳答案
使用主机名时,可以回退到服务器证书的主题 DN 中的通用名称,而不是使用主题备用名称。
当使用 IP 地址时,证书中必须有一个主题备用名称条目(IP 地址类型,而不是 DNS 名称)。
您将在此处找到有关规范以及如何生成此类证书的更多详细信息:https://stackoverflow.com/a/8444863/372643
关于java - SSL 证书 - 不存在主题备用名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20722406/