SSL证书服务器名称是如何解析的/我可以使用keytools添加其他名称吗?为了清楚起见,这些问题的措辞可能是不同的,但它们都与同一问题有关。SSL证书服务器名称是如何解析的?为什么浏览器似乎使用证书的cn字段,而Java的机制似乎只关注“Subject Alternative Name”?是否可以使用KeyTool向SSL证书添加其他名称?如果没有,那么使用OpenSSL代替OpenSSL是一个好的选择吗?只是一些背景:我需要一个主服务器来使用HTTPS与多个服务器进行通信。显然,我们不想为每个服务器购买SSL证书(可能有很多),所以我想使用自签名证书(我一直在使用KeyTool来生成它们)。在我将证书添加到操作系统中后,浏览器(IE和Chrome)很高兴地接受连接为受信任的。但是,即使在将证书添加到Java的仙人掌之后,Java仍然不会接受信任的连接,并抛出以下异常:引发原因:java.security.cert.CertificateException:在sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:142)at sun.security.util.HostnameChecker.match(HostnameChecker.java:75)at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(X509T rustManagerImpl.java:264)com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509 TrustManagerImpl.java:250)com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien tHandshaker.java:1185).我发现我可以让Java信任实现我自己的HostNameVerifier的证书,我从这里复制了该证书:com.sun.jbi.internal.security.https.DefaultHostnameVerifier只是为了测试(顺便说一下,作为参数传递给HostnameVerifier的主机名是正确的,所以我认为它应该被接受)。我一直使用证书字段cn作为主机名(通常是IP地址)。有人能告诉我,如果我做错了什么,并指出我的正确方向吗?
添加回答
举报
0/150
提交
取消