Почему вы используете OpenSSL для генерации пары ключей? Почему бы просто не использовать keytool
?
Инструмент genrsa
просто генерирует закрытый ключ. Как вы создаете соответствующий сертификат? Как вы импортируете закрытый ключ в хранилище ключей Java? (Я спрашиваю, потому что keytool
может импортировать только закрытый ключ из существующего хранилища ключей и только из Java 6 и более поздних версий.)
Я подозреваю, что ваша проблема в том, что в вашем хранилище ключей нет записи ключа (закрытый ключ и соответствующий сертификат). Когда вы перечислите содержимое хранилища ключей с помощью keytool
, сколько там записей? Это ключевые записи или доверенные записи?
Серверу необходим доступ к закрытому ключу для аутентификации. Чтобы импортировать закрытый ключ, используйте Java 6 расширенный keytool
.
После создания ключа и сертификата в OpenSSL используйте OpenSSL для создания хранилища ключей PKCS # 12:
openssl pkcs12 -export -in cert.pem -inkey key.pem > server.p12
Затем преобразуйте это хранилище в хранилище ключей Java:
keytool -importkeystore -srckeystore server.p12 -destkeystore server.jks -srcstoretype pkcs12
Теперь используйте server.jks
на вашем сервере с поддержкой SSL, который содержит сертификат и закрытый ключ.