2014-12-23 4 views
0

Я установил сертификат SSL/TLS на сервере в соответствии с инструкциями, представленными Digicert по приведенной ниже ссылке. https://www.digicert.com/ssl-certificate-installation-java.htmОшибка при установлении соединения: net :: ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Также определен 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; 
    } 
} 

ответ

0

У меня есть работа с использованием KeyManager вместо TrustManager при инициализации SSLContext. Ниже приведен код для справки.

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; 
    } 
} 
Смежные вопросы