亚马逊云服务的 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