Конвертировать закрытый ключ AWS из формата .pem в формат .der для использования с Java - PullRequest
0 голосов
/ 28 сентября 2019

Используя CFML (Lucee), я пытаюсь использовать AWS java SDK (v1.11) для создания подписанных URL-адресов Cloudfront, и я застреваю, пытаясь создать подпись.Проблема в том, что я не могу преобразовать свой закрытый ключ .pem в формат .der.В последней строке следующего фрагмента кода я получаю различные ошибки неверного ключа:

    var derContent = FileReadBinary("C:/path/to/cert.der");
    var keySpec = createObject("java", "java.security.spec.PKCS8EncodedKeySpec");
    var keyFactory = createObject("java", "java.security.KeyFactory").getInstance("RSA");
    var privateKey = keyFactory.generatePrivate(keySpec.init(derContent));

Я пробовал несколько попыток конвертировать файл с использованием openssl, но у меня возникают различные проблемы.

Эта команда не создает сертификат .pem:

openssl x509 -inform PEM -outform DER -text -in pk-XXXX.pem -out pk-XXXX.der

unable to load certificate
30276:error:0909006C:PEM routines:get_name:no start line:../openssl- 
1.1.1a/crypto/pem/pem_lib.c:745:Expecting: TRUSTED CERTIFICATE

Этот сертификат создает сертификат, но я получаю ошибку invalid key format, вызывающую generatePrivate()

openssl rsa -inform PEM -outform DER -text -in pk-XXXX.pem -out pk-XXXX.der

Кто-нибудь может предложить другие способы конвертации сертификата?Спасибо!

1 Ответ

0 голосов
/ 28 сентября 2019

Из этой статьи: https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CFPrivateDistJavaDevelopment.html

Эта команда openssl преобразует ваш файл закрытого ключа облачного фронта в формат .der:

openssl pkcs8 -topk8 -nocrypt -in aws-private-key.pem -inform PEM -out aws-private-key.der -outform DER
...