Загрузка сертификата SSL в движок Netty - PullRequest
4 голосов
/ 17 января 2012

Я использую пример SSL, расположенный в папке с примером Netty:

String keyStoreFilePath = System.getProperty("keystore.file.path");
String keyStoreFilePassword = System.getProperty("keystore.file.password");

KeyStore ks = KeyStore.getInstance("JKS");
FileInputStream fin = new FileInputStream(keyStoreFilePath);
ks.load(fin, keyStoreFilePassword.toCharArray());

// Set up key manager factory to use our key store
// Assume key password is the same as the key store file
// password
KeyManagerFactory kmf = KeyManagerFactory.getInstance(algorithm);
kmf.init(ks, keyStoreFilePassword.toCharArray());

Я сгенерировал свое собственное хранилище ключей, используя:

/ usr / java / jdk1.6.0_25 / bin / keytool -genkey -keystore SrvKeystore -keyalg RSA

И все отлично работает !!

Однако теперь я хочу использовать официальный сертификат, предоставленный мне comodo (https://secure.comodo.com/)

Они, очевидно, предоставляют 3 типа файлов: .csr, .crt и .key

Пожалуйста, сообщите, какой файл должен указывать на keystore.file.path, а какой на keystore.file.password

Может быть, мне нужно сделать что-то еще?

Ответы [ 2 ]

5 голосов
/ 18 января 2012

Comodo предоставляет вам сертификат и закрытый ключ в формате, наиболее удобном для веб-серверов (например, Apache и nginx).

Существует два способа решения этой проблемы:

(1) Импортируйте цепочку сертификатов (.crt) и закрытый ключ (.key) в хранилище ключей jks или pkcs 12 (используя keytool или openssl).

(2) Используйте Java CertificateFactory для чтения сертификата иbouncycastle PEMReader для чтения закрытого ключа, а затем оберните его в свой собственный менеджер ключей (который вы можете передать в SSLContext).

0 голосов
/ 09 мая 2012

Основная информация, необходимая для импорта авторизованного сертификата CA, доступна здесь http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html

Импорт сертификатов

Чтобы импортировать сертификат из файла, используйте -команда import, как в

keytool -import -alias joe -file jcertfile.cer

В этом примере команда импортирует сертификат (ы) в файл jcertfile.cer и сохраняет его в записи хранилища ключей, определенной псевдонимом joe.

Вы импортируетесертификат по двум причинам:

  1. для добавления его в список доверенных сертификатов,
  2. или для импорта ответа сертификата, полученного от ЦС в результате отправки запроса на подпись сертификата(см. команду -certreq) для этого CA.
...