相关疑难解决方法(0)

SSL握手警报:自升级到Java 1.7.0以来unrecognized_name错误

我今天从Java 1.6升级到Java 1.7.从那时起,当我尝试通过SSL建立与Web服务器的连接时发生错误:

javax.net.ssl.SSLProtocolException: handshake alert:  unrecognized_name
    at sun.security.ssl.ClientHandshaker.handshakeAlert(ClientHandshaker.java:1288)
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1904)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1027)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1262)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1289)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1273)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:523)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1296)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at java.net.URL.openStream(URL.java:1035)
Run Code Online (Sandbox Code Playgroud)

这是代码:

SAXBuilder builder = new SAXBuilder();
Document document = null;

try {
    url = new URL(https://some url);
    document = (Document) builder.build(url.openStream());
} catch (NoSuchAlgorithmException ex) {
    Logger.getLogger(DownloadLoadiciousComputer.class.getName()).log(Level.SEVERE, null, ex);  
}
Run Code Online (Sandbox Code Playgroud)

它只是一个测试项目,这就是为什么我允许和使用不受信任的证书与代码:

TrustManager[] trustAllCerts = new TrustManager[]{
    new X509TrustManager() {

        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return null;
        }

        public void checkClientTrusted(
                java.security.cert.X509Certificate[] certs, …
Run Code Online (Sandbox Code Playgroud)

java ssl

222
推荐指数
9
解决办法
29万
查看次数

Java上的服务器名称指示(SNI)

任何人都可以帮助我开始使用Java中的服务器名称指示进行HTTP连接吗?

我正在尝试从我管理的网站请求内容.我一直在使用Apache的HttpClient库,但我对安全内容的请求失败,因为网站仅使用SNI进行HTTPS,并且在DefaultHttpClient中未启用SNI.我已经在Apache的HttpClient库中查找了如何处理这个问题的说明,但最终我看到了这个文档:http://hc.apache.org/httpclient-3.x/sslguide.html,这已经过时了(当HttpClient和HttpCore是Apache的commons包的一部分时,请参考代码).

所以...任何帮助?

java ssl http sni

12
推荐指数
2
解决办法
4万
查看次数

标签 统计

java ×2

ssl ×2

http ×1

sni ×1