Я пытаюсь настроить сервер Tomcat с SSL. Я генерировал пару ключей таким образом:
$ keytool -genkeypair -alias tomcat -keyalg RSA -keystore keys
Затем я генерирую сертификат, подписывая запрос:
$ keytool -certreq -keyalg RSA -alias tomcat -keystore keys -file tomcat.csr
Затем я вставка копии содержание tomcat.csr
в форму на веб-сайте Thawte, прося испытательный сертификат SSL. В ответ я получаю два сертификата, разграниченные с -----BEGIN ... -----END
, то, что я сохраняю под tomcat.crt
и thawte.crt
. (Thawte называет второй сертификат 'Тестом Thawte Корневой сертификат' CA).
Когда я пытаюсь импортировать любого из них, он перестал работать:
$ keytool -importcert -alias tomcat -file tomcat.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Failed to establish chain from reply
$ keytool -importcert -alias thawte -file thawtetest.crt -keystore keys
Enter keystore password:
keytool error: java.lang.Exception: Input not an X.509 certificate
Добавление -trustcacerts
опция к любой из этих команд ничего не изменяет также.
Какая-либо идея, что я делаю неправильно здесь?
Я наконец понял, что здесь происходит. Оказывается, ответы, которые я получил от Thawte, отформатированы как PKCS # 7, тогда как keytool
ожидает сертификации в формате X.509.
openssl
можно использовать для преобразования сертификатов из одного формата в другой:
$ openssl pkcs7 -in thawtetest.crt -print_certs |
openssl x509 > thawtetest.x509
Теперь вы можете импортировать thawtetest.x509
с помощью keytool и tomcat.crt
сразу за Это.
У вас должна быть возможность импортировать цепочки PKCS # 7 с помощью keytool, если вы используя более свежую версию. Экспорт сертификатов в отдельные файлы тоже будет работать, но если вы используете последнюю версию keytool, проблем с импортом самого файла PKCS # 7 возникнуть не должно.