我正在尝试在AWS coudfront上设置SSL,但在运行以下命令时出现此错误A client error (MalformedCertificate) occurred when calling the UploadServerCertificate operation: Private key was in an unrecognized
格式:
aws iam upload-server-certificate --server-certificate-name domain.tld --certificate-body file:///home/khine/certs/14595113.crt --private-key file:///home/khine/certs/domain.key --certificate-chain file:///home/khine/Sandboxes/Business/certs/domain.tld.bundle.crt --path /cloudfront/domain.tld/
这就是我设置我的文件的方式:
openssl ecparam -out domain.key -name secp384r1 -genkey
openssl req -new -sha256 -key doamin.key -nodes -out domain.tld_ssl.csr
然后我使用创建的csr文件来获取我的域的证书。
我收到了以下文件:
root@www:/etc/ssl/certs # ls
14595113.crt
COMODOECCExtendedValidationSecureServerCA.crt
AddTrustExternalCARoot.crt
COMODOECCAddTrustCA.crt
domain.tld.bundle.crt
来自https://rasmith.me.uk/2014/07/27/So-You-Want-To-Be-Secure/
规定的三个文件是;
当我尝试将我的密钥转换为PEM格式时,出现以下错误:
# openssl rsa -in domain.key -outform PEM -out domain_pem.key
34379118248:error:0607907F:digital envelope routines:EVP_PKEY_get1_RSA:expecting an rsa key:/usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/evp/p_lib.c:288:
Google会返回此http://openssl.6102.n7.nabble.com/EVP-PKEY-get1-RSA-expecting-an-rsa-key-td46677.html
但没有人回答。
有关如何将密钥转换为PEM格式的任何建议,或者如果我在我的程序中遗漏了某些内容,我们将不胜感激。
答案 0 :(得分:1)
只需从私钥文件中删除 EC PARAMETERS 部分
即可您的密钥需要标题 ----- BEGIN EC PRIVATE KEY -----
和页脚 -----结束EC私钥-----
只需从密钥文件中删除前三行
即可答案 1 :(得分:0)
对于那些认为其证书正确但仍然面临此问题的人,请浏览到存在证书(PEM编码)的位置,然后尝试上传:
aws iam upload-server-certificate --server-certificate-name enterprise-dev-iflb --certificate-body file://iflb-public-key.pem --private-key file://iflb-no-path-phrase-key.pem
答案 2 :(得分:0)
我遇到了同样的错误。事实证明,我从 p12
密钥库生成私钥的方式不正确。然后我使用这个命令(导出未加密的私钥):
openssl pkcs12 -in keystore.p12 -nodes -nocerts -out cert.pem
我的命令成功了。
aws iam upload-server-certificate --server-certificate-name elastic-beanstalk-x509 --certificate-body file://cert.crt --private-key file://cert.pem