2016-04-06 22 views
0

私はサーバーとクライアントを持っていますが、どちらもsslを使用して相互に通信します。以前の自己署名されたsslkeystoreはサーバーで期限切れになったので、拡張有効性と同じ詳細を持つ新しいものを生成しました。しかし、クライアントからサーバーに通信しようとすると、次の例外が発生します。sslのcertificate_unknown例外

javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) 
at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1991) 

私はキーストアを更新するまで機能していました。

次のコードブロックから例外が生成されます。私がBufferedInputStream bisから読むことを試みるとき。

private byte[] readBytesFromStream(BufferedInputStream bis) throws IOException { 

    byte[] lengthBytes = new byte[4]; 
    bis.read(lengthBytes); 
    int length = ByteBuffer.wrap(lengthBytes).getInt(); 
    System.out.print("length : " + length); 

    byte[] data = new byte[length]; 
    bis.read(data); 

    return data; 
} 

更新されたキーストアを反映するために何か他の操作を行う必要があります。

答えて

0

クライアントのキーストアによってサーバーの公開キーを信頼する必要がありました。その後、それは働き始めた。また、私はキーストアと証明書を持つこの種のものに対処するのに役立つ優れたツールをオンラインで見つけました。(https://sourceforge.net/projects/portecle/

関連する問題