AWS通过命令行上传SSL证书

亚马逊云服务的 AWS Educate Starter Account不支持控制面板导入SSL证书,需要命令行操作,过程如下:

wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip

unzip awscli-exe-linux-x86_64.zip

bash aws/install

提示You can now run: /usr/local/bin/aws --version即成功

获取 access_key:

登录控制台后,然后打开 AWS Account

在/root文件夹下

mkdir .aws

vi .aws/credentials

[default] 

aws_access_key_id=

aws_secret_access_key=

aws_session_token=

密钥的有效期每次只有 3 个小时,超时了就重新操作一遍获取新的密钥

上传证书:

假设证书为 public_key_cert_file.pem,密钥为 my_private_key.pem,证书链为 my_certificate_chain_file.pem,则上传证书的命令为:

aws iam upload-server-certificate --path /cloudfront/aws/ --server-certificate-name myServerCertificate --certificate-body file://public_key_cert_file.pem --private-key file://my_private_key.pem --certificate-chain file://my_certificate_chain_file.pem

响应 json 说明上传成功

参数说明: --path:证书路径(AWS 上的) 

--server-certificate-name:证书名称 

--certificate-body:证书公钥完整文件路径(路径前加 file://,如 file:///root/public_key_cert_file.pem) 

--private-key:证书私钥完整文件路径(路径前加 file://) 

--certificate-chain:证书链完整文件路径(路径前加 file://)

.crt扩展名的证书直接修改扩展名为pem即可,证书链部分要单独拆出来,不能都在公钥里

其他命令:

列出证书清单:

aws iam list-server-certificates

删除指定证书:

aws iam delete-server-certificate --server-certificate-name www.www.net

证书上传错误

错误提示:om.amazonaws.services.cloudfront.model.InvalidViewerCertificateException: The specified SSL certificate doesn't exist, isn't in us-east-1 region, isn't valid, or doesn't include a valid certificate chain.
原因分析:证书必须为 2048 位或以下。Let's Encrypt 默认 3072 位。


参考来源:

https://haoduck.com/589.html

https://vircloud.net/exp/aws-cloudfront.html

发表评论