java - ejemplo - Clave privada y pública por separado
ejemplo firma digital en java (0)
οκ! Quiero establecer una comunicación del servidor cliente oves SSL / TLS en Java. El servidor es multiproceso. Con openssl actué como mi propia CA (clave privada creada y certificado autofirmado para la autoridad). Ahora quiero crear claves y certs para mi servidor y clientes que están firmados desde la CA que creé.
1) ¿Tengo que crear certs y claves desde el prompt para cada cliente? ¿O es otra forma "automatizada", por ejemplo, con un script?
2) He visto que este código para configurar tiendas de claves
private void setupClientKeyStore() throws GeneralSecurityException, IOException { clientKeyStore = KeyStore.getInstance( "JKS" ); clientKeyStore.load( new FileInputStream( "client1publickey.jks" ), "password".toCharArray() ); } private void setupServerKeystore() throws GeneralSecurityException, IOException { InputStream keyStoreResource = new FileInputStream("serverprivatekey.jks"); char[] keyStorePassphrase = "password".toCharArray(); serverKeyStore = KeyStore.getInstance("JKS"); serverKeyStore.load(keyStoreResource, keyStorePassphrase); }
He ejecutado el comando para ver qué tipo de entradas son estas y client1publickey es una entrada de TrustedCert, mientras que serverprivatekey es una entrada de PrivateKey. Este código está en mi clase de servidor. Tengo este código en mi clase de cliente
private void setupServerKeystore() throws GeneralSecurityException, IOException { serverKeyStore = KeyStore.getInstance( "JKS" ); serverKeyStore.load( new FileInputStream("serverpublickwy.jks"), "university".toCharArray() ); } private void setupClientKeyStore() throws GeneralSecurityException, IOException { clientKeyStore = KeyStore.getInstance( "JKS" ); clientKeyStore.load( new FileInputStream( "client1privatekey.jks" ), "university".toCharArray() );} La pregunta es ¿cómo puedo crear estos archivos jks por separado? El archivo publickey.jks es cert, ¿verdad? ¿Cómo puedo tenerlo en otro archivo de la clave privada y estar firmado desde CA? ¿O es otra forma en que puedo establecer conexiones entre el cliente / servidor? En primer lugar, había creado la CA con openssl y luego los dos archivos jks para servidor y cliente incluían los certs y la clave. Perdón por el inglés.