2012-03-06 7 views
1

私はSSLを使用してサーバを作成しようとしていますが、私は次のエラーを取得しておいてください。SSLサーバ - javax.net.ssl.SSLException

「サーバー中止さ:javax.net.ssl.SSLException:いいえ利用可能証明書または鍵は、有効になっているSSL暗号スイートに対応しています。

証明書を正しく作成しているかどうかわかりません。ここに私のコードです。 私はSSLサーバー

// SSL Server 

import java.net.*; 
import java.util.concurrent.ExecutorService; 
import java.util.concurrent.Executors; 
import javax.net.ServerSocketFactory; 
import javax.net.ssl.SSLServerSocketFactory; 

public class SSL_Server { 


public static void main(String[] args) { 
    int port = 2018; 
    ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault(); 
    ServerSocket ssocket = null; 
    System.out.println("SSL_Server started"); 

    System.setProperty("javax.net.ssl.keyStore","mySrvKeystore"); 
    System.setProperty("javax.net.ssl.keyStorePassword","123456"); 

    final ExecutorService threadPool = Executors.newCachedThreadPool(); 

    try { 
     ssocket = ssocketFactory.createServerSocket(port); 
     InetAddress myIP =InetAddress.getLocalHost(); 
     System.out.println(myIP.getHostAddress()); 

     while(true){ 
      Socket aClient = ssocket.accept(); 
      //create a new thread for every client 
      threadPool.submit(new SSL_ClientHandler(aClient)); 
     } 
    } 
    catch(Exception e) { 
     System.err.println("Server aborted:" + e); 
    } finally { 
     try{ 
      ssocket.close(); 
     } catch (Exception e){ 
      System.err.println("could not close connection properly" + e); 
     } 
    } 
    System.out.println("connection was closed successfully"); 
} 

}

+0

メッセージの「サーバー中止さ」の部分は、厳密には、あなたの発明です。関連する部分は例外から得た部分です。それに応じてあなたのタイトルを修正することを強くお勧めします。 – EJP

答えて

1

それはそれを設定するので、あなたは、それを取得する前に、デフォルトSSLContext(したがって、デフォルトSSLServerSocketFactory)を設定するプロパティを設定する必要があり、古いTCPサーバーを変換しています次に。

System.setProperty("javax.net.ssl.keyStore","mySrvKeystore"); 
System.setProperty("javax.net.ssl.keyStorePassword","123456"); 

ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault(); 
ServerSocket ssocket = null; 
System.out.println("SSL_Server started"); 
2
System.setProperty("javax.net.ssl. keyStore","mySrvKeystore"); System.setProperty("javax.net.ssl. keyStorePassword","123456"); 

ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault(); 
ServerSocket ssocket = null; 
System.out.println("SSL_Server started"); 
関連する問題