阿里云服务器 Certbot 申请 LetsEncrypt 泛域名免费证书,并实现自动续订

本文档详细介绍了如何在阿里云服务器上,利用Certbot和DNS解析API,申请Let's Encrypt的免费泛域名SSL证书。首先确保系统为Centos7.6以上,配置子账号的RAM权限,然后安装Python和相关依赖,创建并配置credentials文件,申请证书,最后在nginx中配置证书并设置自动续签。整个过程详尽且实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

阿里云服务器 Certbot 申请 LetsEncrypt 泛域名免费证书

准备工作

首先,要有一个域名,且使用 阿里云DNS 提供解析服务。系统Centos 7.6以上
查看系统版本命令:lsb_release -a

其次,要在阿里云 https://ram.console.aliyun.com/ 创建一个子账号并配置 RAM 权限 AliyunDNSFullAccess,并为子账号生成AccessKey用于通过API管理DNS解析。
在这里插入图片描述

1.安装Python

这里我使用了 Python 虚拟环境的方式安装 Certbot,这样的好处是 pip 安装任何依赖包不会对当前系统造成任何影响

yum install python36 -y

2.配置环境(一步一步执行)

mkdir -p /opt/soft/tool/certbot/
cd /opt/soft/tool/certbot/
python3 -m venv venv
source venv/bin/activate

3.安装certbot-nginx

pip install certbot certbot-nginx certbot-dns-aliyun

下列错误解决 执行:pip install --upgrade pip 后再执行步骤3
在这里插入图片描述
遇到下列问题忽略,输入你的邮箱即可
在这里插入图片描述

4.配置AK(全部粘贴)

cat > /opt/soft/tool/certbot/credentials.ini <<EOF
certbot_dns_aliyun:dns_aliyun_access_key = *********
certbot_dns_aliyun:dns_aliyun_access_key_secret = ***********
EOF
chmod 600 /opt/soft/tool/certbot/credentials.ini   #赋予文本权限

5.申请证书 my.com是你在nginx解析的域名(全部粘贴)

/opt/soft/tool/certbot/venv/bin/certbot certonly \
-a certbot-dns-aliyun:dns-aliyun \
--certbot-dns-aliyun:dns-aliyun-credentials /opt/soft/tool/certbot/credentials.ini \
-d my.com \
-d "*.my.com"

成功申请后,会有提示证书的存放位置。
在这里插入图片描述

6.在nginx配置证书(文本贴入nginx.conf)

server {
		listen 443 ssl;
		server_name my.com;
		client_max_body_size 80M;
		ssl_certificate  /etc/letsencrypt/live/my.com/fullchain.pem; 
		ssl_certificate_key /etc/letsencrypt/live/my.com/privkey.pem;
		ssl_session_timeout 5m;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
		ssl_ciphers ALL:!kEDH!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
		ssl_prefer_server_ciphers on;

		location / {
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;
			proxy_set_header X-Forwarded-Proto https;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_redirect off;
			proxy_connect_timeout      20;
			proxy_send_timeout         60;
			proxy_read_timeout         60;
		}

		location = /favicon.ico {
			log_not_found off;
			access_log off;
		}
    }

7.因为Certbox颁发证书有效期90天,所有需要Centos自动续签

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

注意:若未正常续约证书,需手动重复第5个步骤,输入 2 选择覆盖证书,重启nginx即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值