Мне нужно использовать разъем ssl (2 way handshake) для подключения в моем проекте. Таким образом, для создания ключей, я использовал OpenSSL с этим comands:импорт зашифрованного закрытого ключа для jks
для сервера:
req -x509 -days 3650 -nodes -newkey rsa:2048 -keyout a_private.key -out a_certificate.cert
rsa -in a_private.key -des3 -out a_private_des.key
rsa -in a_private_des.key -pubout -out a_pub.key
для клиента:
req -x509 -days 3650 -nodes -newkey rsa:2048 -keyout b_private.key -out b_certificate.cert
rsa -in b_private.key -des3 -out b_private_des.key
rsa -in b_private_des.key -pubout -out b_pub.key
для импорта в JKS файл я использовал keytool:
keytool -import -alias a_private -file a_private_des.key -keystore a.jks
keytool error: java.lang.Exception: Input not an X.509 certificate
после этого, я сделал дер-файл с помощью следующей команды:
pkcs8 -topk8 -in a_private_des.key -out a_private_des.der -outform DER
и повторной попытки импортировать ключ к JKS файла:
keytool -import -alias a_private -file a_private_des.der -keystore a.jks
keytool error: java.lang.Exception: Input not an X.509 certificate
и я получаю же исключение с b_pub.key
Как я могу импортировать зашифрованный закрытый ключ и открытый ключ в файл jks?
tanx alot.
tanx для вашего ответа. Мне нужно использовать зашифрованный ключ для ssl socket conection. как я могу использовать открытый ключ в моем клиентском сокете? – Ardeshir
Я думаю, что процесс будет заключаться в создании вашего закрытого ключа, создании собственного подписного сертификата с использованием этого ключа, а затем создании и добавлении сертификата в jks truststore, который вы затем сможете развернуть для использования вашего приложения. Поэтому я думаю, что элемент, который вам нужно изменить, - импортировать созданный сертификат (a_certificate.cert) в a.jks, вместо того, чтобы пытаться импортировать ключ. После этого вы можете проверить с помощью 'keytool -list -v -keystore a.jks', чтобы просмотреть содержимое хранилища ключей. – Garreth