Назад | Перейти на главную страницу

Загрузка сертификата SSL в AWS - преобразование сертификата в PEM

Короткий вопрос

У меня есть рабочий файл 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)