【问题标题】:Error in connection establishment: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH连接建立错误:net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH
【发布时间】:2014-12-23 04:53:06
【问题描述】:

我已按照 Digicert 在以下链接中提供的说明在服务器上安装了 SSL/TLS 证书。 https://www.digicert.com/ssl-certificate-installation-java.htm

还定义了 TrustManager,但我仍然无法建立安全连接。 我收到连接失败错误,原因是“连接建立错误:net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH”

下面是我添加 SSL 支持的代码。

private static void addSSLSupport(DefaultIoFilterChainBuilder chain)
        throws Exception {
    try {
        KeyStore keyStore=KeyStore.getInstance("JKS");
        char[] passphrase= {'t','e','s','t','s','s','l'};
        keyStore.load(new FileInputStream("/home/ec2-user/digicert/mydomain.jks"),passphrase);
        Util.logInfo("Key Store loaded");
        SSLContext ctx=SSLContext.getInstance("TLS");
        TrustManagerFactory trustFactory=TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
        trustFactory.init(keyStore);
        X509TrustManager defaultTrustManager = (X509TrustManager) trustFactory.getTrustManagers()[0];
        ctx.init(null, trustFactory.getTrustManagers(), null);            
        SslFilter sslFilter = new SslFilter(ctx);
        chain.addLast("sslFilter", sslFilter);
        Util.logInfo("SSL ON");
    }catch(Exception e){
        Util.logError(e.toString());
        throw e;
    }
}

【问题讨论】:

    标签: ssl apache-mina


    【解决方案1】:

    我在初始化 SSLContext 时使用 KeyManager 而不是 TrustManager 让它工作。 以下是供您参考的代码。

    private static void addSSLSupport(DefaultIoFilterChainBuilder chain)
            throws Exception {
        try {
            KeyStore keyStore=KeyStore.getInstance("JKS");
            char[] passphrase= {'t','e','s','t','s','s','l'};
            keyStore.load(new FileInputStream("/root/mydomain.jks"),passphrase);
            Util.logInfo("Key Store loaded");
            KeyManagerFactory kmf = KeyManagerFactory
                 .getInstance(KEY_MANAGER_FACTORY_ALGORITHM);
            kmf.init(keyStore, passphrase);
            SSLContext ctx=SSLContext.getInstance("TLS");
            ctx.init(kmf.getKeyManagers(), null, null);            
            SslFilter sslFilter = new SslFilter(ctx);
            chain.addLast("sslFilter", sslFilter);
            Util.logInfo("SSL ON");
        }catch(Exception e){
            Util.logError(e.toString());
            throw e;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-28
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-02
      • 2020-11-18
      • 2017-11-18
      • 2019-08-30
      相关资源
      最近更新 更多