最近被网站优化搞得生活不能自理,测试了下竞品的网站发现SSL握手部分慢了300ms,对于RSA算法来讲,目前至少使用2048位以上的密钥长度才能保证安全性。ECC只需要使用224位长度的密钥就能实现RSA2048位长度的安全强度,在进行相同的模指数运算时速度显然要快很多。
在FreeSSL申请了免费的https ECC加密的证书,ACM导入成功都没有报错,然后,ALB负载均衡死活认不到证书,坑呐,重新生成RSA加密的导入就可以用。查了下才知道AWS ACM支持导入但不能用(做这个导入功能干嘛),要从IAM导入证书, 负载均衡和CDN才能使用ECC的证书,导入IAM还挺麻烦的要用AWS cli 才可以,IAM又没有找到图像界面导入的地方。
参考AWS的资料:
#负载均衡器或 CloudFront 分配导入的证书?
https://aws.amazon.com/cn/premiumsupport/knowledge-center/elb-ssl-tls-certificate-https/
#IAM导入证书方法
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html#upload-server-certificate
纪录下踩坑的过程:
省去FreeSSL申请证书的过程。
随便找了台linux,安装AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
./aws/install
安装好cli配置下登入的config
打开(IAM) 我的安全凭证添加访问用户或者密钥授权IAM权限 后续上次证书需要权限
拿到 access_key 后 aws configure 交互式配置
配置好了就可以上传证书了
#AWS上传证书命令
aws iam upload-server-certificate --server-certificate-name ExampleCertificate
--certificate-body file://Certificate.pem
--certificate-chain file://CertificateChain.pem
--private-key file://PrivateKey.pem
FreeSSL申请的ECC证书 会拿到pem和key文件
pem中上半部分保存证书的正文 下半部分是证书链 key是私钥 在本地目录新建3个文件
#上传的命令 要改成一行 ,多行会失效:
aws iam upload-server-certificate --server-certificate-name www.beepgame.com --certificate-body file://Certificate.pem --certificate-chain file://CertificateChain.pem --private-key file://PrivateKey.pem
上传成功后使用 list-server-certificates 命令就可以查到上传成功的ECC证书了
list-server-certificates
打开负载均衡器 选IAM的证书 就可以用ECC的证书了