将AWS私钥从.pem格式转换为.der格式以与Java一起使用

问题描述 投票:0回答:1

[使用CFML(Lucee),我正在尝试使用AWS Java SDK(v1.11)创建签名的Cloudfront URL,而我却试图创建签名。问题是我似乎无法将.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

有人可以建议其他方法转换证书吗?谢谢!

openssl amazon-cloudfront pem cfml aws-java-sdk
1个回答
0
投票

从本文:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CFPrivateDistJavaDevelopment.html

此openssl命令会将您的Cloudfront私钥文件转换为.der格式:

openssl pkcs8 -topk8 -nocrypt -in aws-private-key.pem -inform PEM -out aws-private-key.der -outform DER
© www.soinside.com 2019 - 2024. All rights reserved.