Импорт пробных сертификатов Thawte в хранилище ключей Java
Я пытаюсь настроить сервер 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 Test CA Root).
Когда я пытаюсь импортировать любой из них, это терпит неудачу:
$ 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
Опция для любой из этих команд тоже ничего не меняет.
Есть идеи, что я здесь делаю не так?
3 ответа
Я наконец понял, что здесь происходит. Оказывается, что ответы, которые я получил от Thawte, отформатированы как PKCS#7, тогда как ответы keytool
ожидает сертификацию в формате X.509.
openssl
может использоваться для преобразования сертификатов из одного формата в другой:
$ openssl pkcs7 -in thawtetest.crt -print_certs |
openssl x509 > thawtetest.x509
Теперь вы можете импортировать thawtetest.x509
с keytool, и tomcat.crt
прямо за этим.
Столкнувшись с той же проблемой, я нашел этот пост, который помог мне. Я поместил пробные сертификаты, которые я получил, в один файл и использовал keytool для импорта, чтобы удостовериться, что ALIAS (параметр keytool -alias), который я использовал, был другим (то есть не тем же псевдонимом, который я использовал при создании сертификатов для запроса). Это странное сообщение об ошибке, потому что оно просто не любит, когда вы пытаетесь импортировать в тот же псевдоним.
Вы должны иметь возможность импортировать цепочки PKCS#7, используя keytool, если вы используете более свежую версию. Экспорт сертификатов в отдельные файлы также будет работать, но если вы используете последнюю версию keytool, не должно возникнуть проблем с импортом самого файла PKCS#7.