Quiero hacer una conexión de socket SSL del servidor usando el siguiente código:Cómo corregir SSL - Ningún certificado disponible
int port = 12000;
ServerSocketFactory ssocketFactory = SSLServerSocketFactory.getDefault();
ServerSocket ssocket = ssocketFactory.createServerSocket(port);
// Listen for connections
Socket socket = ssocket.accept();
consigo un "javax.net.ssl.SSLException: No disponible certificado o clave corresponde a las suites de cifrado SSL que están habilitadas. "al hacer la aceptación.
he creado un almacén de claves que contiene una clave RSA usando:
keytool -genkeypair -alias ClubConnectionCert -keyalg RSA -validity 7 -keystore ClubConnectionKeystore
y comienzo mi programa con las siguientes opciones:
-Djavax.net.ssl.keyStore=ClubConnectionKeystore -Djavax.net.ssl.keyStorePassword=mypassword
hacer yo echo de menos algo de código para leer en el almacén de claves, o ¿cómo puedo probar/depurar que realmente se usa el almacén de claves dado?
Además, asegúrese de que ssl realmente funciona sin Java. – jayunit100
@ jayunit100: ¿qué quieres decir? – Bruno
Si apunta a una ruta de acceso inexistente, obtienes 'FileNotFoundException'. "Asegúrese de que los parámetros -D estén configurados como parámetros JVM" es la explicación más probable: no hay un almacén de claves predeterminado en JSSE (por lo que no especificar la propiedad del sistema conduce a este error). – Bruno