Короткий вопрос
У меня есть рабочий файл crt, импортированный в хранилище ключей tomcat, и мне нужен файл сертификата и файл закрытого ключа в pem для загрузки в aws cloudfront.
Длинный вопрос
Наш сертификат SSL выдан go-daddy для использования сертификата для tomcat, поэтому у меня есть следующие файлы:
Хранилище ключей tomcat отлично работает при правильной настройке. Однако сертификат является сертификатом с подстановочными знаками, и нам также необходимо загрузить его aws для использования в облачном интерфейсе. Для метода загрузки aws cli требуется файл сертификата pem. Я попытался преобразовать это в pem с помощью openssl. Однако моя первая проблема - это ошибка jdk при преобразовании сертификата. Во-вторых, какая бы часть я ни конвертировала, openssl не проверил ее.
Что у меня в хранилище ключей
$ keytool -list -keystore tomcat.keystore
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 3 entries
mydomain, Oct 24, 2013, PrivateKeyEntry,
Certificate fingerprint (MD5): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
root, Oct 24, 2013, trustedCertEntry,
Certificate fingerprint (MD5): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
intermed, Oct 24, 2013, trustedCertEntry,
Certificate fingerprint (MD5): XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Преобразование хранилища ключей в pem
$ keytool -importkeystore -srckeystore tomcat.keystore -destkeystore intermediate.p12 -deststoretype PKCS12
Enter destination keystore password:
Re-enter new password:
Enter source keystore password:
Entry for alias mydomain successfully imported.
Problem importing entry for alias root: java.security.KeyStoreException: TrustedCertEntry not supported.
Entry for alias root not imported.
Do you want to quit the import process? [no]: no
Problem importing entry for alias intermed: java.security.KeyStoreException: TrustedCertEntry not supported.
Entry for alias intermed not imported.
Do you want to quit the import process? [no]: no
Import command completed: 1 entries successfully imported, 2 entries failed or cancelled
$ openssl pkcs12 -in intermediate.p12 -out mydomain.pem -nodes
Enter Import Password:
MAC verified OK
$ openssl verify mydomain.pem
mydomain.pem: OU = Domain Control Validated, CN = *.mydomain.com
error 20 at 0 depth lookup:unable to get local issuer certificate
Похоже, мне сначала нужно избавиться от ошибки jdk.
java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.11.90) (amazon-62.1.11.11.90.55.amzn1-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)