相关疑难解决方法(0)

如何解析SSL证书服务器名称/我可以使用keytool添加备用名称吗?

为清楚起见,这些可能被表述为单独的问题,但它们都与同一问题有关.

SSL证书服务器名称是如何解析的?

为什么浏览器似乎使用证书的CN字段,但Java的机制似乎只关注"主题替代名称"?

是否可以使用keytool为SSL证书添加备用名称?如果没有,是使用openSSL而不是一个好的选择?

只是一点背景:我需要让主服务器使用HTTPS与多个服务器通信.显然,我们不想为每个服务器购买SSL证书(可能有很多),所以我想使用自签名证书(我一直使用keytool来生成它们).在操作系统中添加证书后,浏览器(IE和Chrome)很乐意接受该连接为可信任的.但是,即使将证书添加到Java的cacerts之后,Java仍然不会将该连接接受为受信任,并抛出以下异常:

引起:java.security.cert.CertificateException:在sun.security.util.HostnameChecker.match(HostnameChecker.java:75)的sun.security.util.HostnameChecker.matchIP(HostnameChecker.java:142)中没有主题备用名称. at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkIdentity(X509T rustManagerImpl.java:264)at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:250)at com. sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Clien tHandshaker.java:1185)... 14更多

我发现我可以让Java信任实现我自己的HostNameVerifier的证书,我从这里复制了:com.sun.jbi.internal.security.https.DefaultHostnameVerifier只是为了测试(顺便说一句,主机名作为参数传递给HostnameVerifier是正确的,所以我认为应该已经接受了).

我一直使用证书字段CN作为主机名(通常是IP地址).

任何人都可以告诉我,如果我做错了什么,并指出我正确的方向?

java security ssl

72
推荐指数
1
解决办法
12万
查看次数

HTTPS主机名错误:应该是<sub.domain.com>.是什么导致这个?

尝试使用https连接到服务器时,我收到此'HTTPS hostname wrong:'错误.我的网址看起来像这样

https://sub.domain.com/tamnode/webapps/app/servlet.
Run Code Online (Sandbox Code Playgroud)

我使用以下代码连接

    // Create a URLConnection object for a URL
    URL url = new URL(requestedURL);
    HttpURLConnection.setFollowRedirects(false);

    // connect
    connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    connection.setRequestProperty("User-Agent", USER_AGENT); //$NON-NLS-1$

    OutputStreamWriter wr = new OutputStreamWriter(connection
            .getOutputStream());
Run Code Online (Sandbox Code Playgroud)

但后来得到一个错误

IOException: HTTPS hostname wrong:  should be <sub.domain.com>. 
    at sun.net.www.protocol.https.HttpsClient.checkURLSpoofing
    ....
Run Code Online (Sandbox Code Playgroud)

这是过去曾经工作但不再有效的代码.系统架构已经发生了一些变化,但我需要在接近负责人之前获得更多数据.

什么可能导致此错误?我可以关闭URLSpoofing检查吗?

java https exception

21
推荐指数
4
解决办法
5万
查看次数

标签 统计

java ×2

exception ×1

https ×1

security ×1

ssl ×1