[使用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
有人可以建议其他方法转换证书吗?谢谢!
从本文: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