在AWS中为 EC2 实例上的网站或应用程序启用https证书方式一:第三方证书(Let’s Encrypt)

环境说明:

这种方案使用第三方证书,更适合有全站SSL需求。因为ACM上面申请的免费公有证书无法下载到服务器上使用,所以在某处的流量是要以http进行通信的。所以需要从第三方下载下来,上传到AWS ACM中进行使用,这样就可以搭配ELB和Cloudfront使用。这方案的缺点是证书无法自动续签,需要自己手动续签保持证书不过期不影响使用(最下面有参考链接)。这里使用Let’s Encrypt的免费证书进行试验,步骤相对简单仅供参考。

实验环境说明:

一个域名,一台EC2服务器(OS:Amazon Linux 2023(Fedora))使用nginx作为网页服务器

操作步骤:

第一步:下载安装nginx这里就不描述了

第二步:为 Nginx 设置服务器块

sudo vi /etc/nginx/conf.d/sameple.com.conf

server {

listen 80;

server_name xxx.com;

root /usr/share/nginx/html;

index index.html;

charset UTF-8;

}

第三步:设置下载安装certbot 官网:Certbot

原本Amazon Linux 2023系统是Fedora,但是软件库里面并没有snapd除非自己去加,所以这里采取pip更加通用的方式去做 ,根据官网的指示去做。

1.安装系统依赖项

sudo dnf install python3 augeas-libs

 2.设置 Python 虚拟环境

sudo python3 -m venv /opt/certbot/

sudo /opt/certbot/bin/pip install --upgrade pip

3.安装 Certbot 

sudo /opt/certbot/bin/pip install certbot certbot-nginx

4.准备 Certbot 命令

 sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot

 5.运行 Certbot

运行此命令以获取证书并让 Certbot 自动编辑您的 nginx 配置以提供服务,只需一步即可启用 HTTPS 访问。根据指示配置就好

 sudo certbot --nginx

6.(可选)自动续订 

echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

第四步:在route53做一条A记录 ,输入EC2的公有IP地址

第五步:验证访问这样就完成了证书申请,实现https访问

参考链接:https://awswithatiq.com/how-to-install-nginx-in-amazon-linux-2023/

如果上传到aws acm 上续签问题解决的参考链接https://medium.com/@iamjasonchild/custom-ssl-certificate-with-letsencrypt-acm-route53-powered-by-certbot-e457614df6b8

Using Let's Encrypt certificates on AWS CloudFront

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值