免费申请 DV ssl证书并自动续约,非国内云厂商版本
官方FAQ常见问题 - Let's Encrypt
假设域名为 www.521.com
申请和自动续订 Let's Encrypt 的免费 SSL 证书
当然可以!下面是每个步骤的详细解释,确保你能顺利地为你的域名 www.zjx521.com
申请和自动续订 Let's Encrypt 的免费 SSL 证书。
1. 安装 Certbot
在 Debian/Ubuntu 上
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo apt update
:更新包列表,确保你安装的是最新版本的软件包。sudo apt install certbot python3-certbot-nginx
:安装 Certbot 及其 Nginx 插件。python3-certbot-nginx
插件用于自动配置 Nginx。
在 CentOS/RHEL 上
sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx
sudo yum install epel-release
:安装 EPEL(Extra Packages for Enterprise Linux)仓库,因为 Certbot 不在默认的 RHEL/CentOS 仓库中。sudo yum install certbot python3-certbot-nginx
:安装 Certbot 及其 Nginx 插件。
在 Arch Linux 上
sudo pacman -S certbot nginx
sudo pacman -S certbot nginx
:安装 Certbot 和 Nginx。Arch Linux 的包管理器pacman
会自动处理依赖关系。
2. 获取证书
使用 Nginx 插件
sudo certbot --nginx -d www.521.com
sudo certbot --nginx -d www.521.com
:使用 Nginx 插件为www.521.com
申请证书。Certbot 会自动配置 Nginx 以启用 HTTPS。
手动获取证书
sudo certbot certonly --standalone -d www.521.com
sudo certbot certonly --standalone -d www.zjx521.com
:使用 standalone 模式手动获取证书。standalone 模式会启动一个临时的 Web 服务器来验证域名所有权,因此需要确保 80 端口未被占用。
3. 配置 Nginx
编辑你的 Nginx 配置文件,通常位于 /etc/nginx/sites-available/default
或 /etc/nginx/conf.d/your-site.conf
。
server {
listen 80;
server_name www.521.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name www.521.com;
ssl_certificate /etc/letsencrypt/live/www.521.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.521.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# 其他配置
location / {
root /var/www/html;
index index.html index.htm;
}
}
listen 80;
:监听 HTTP 请求。server_name www.521.com;
:指定服务器名称。return 301 https://$host$request_uri;
:将 HTTP 请求重定向到 HTTPS。listen 443 ssl;
:监听 HTTPS 请求。ssl_certificate /etc/letsencrypt/live/www.521.com/fullchain.pem;
:指定 SSL 证书文件路径。ssl_certificate_key /etc/letsencrypt/live/www.521.com/privkey.pem;
:指定 SSL 私钥文件路径。ssl_protocols TLSv1.2 TLSv1.3;
:指定支持的 SSL 协议版本。ssl_ciphers
:指定支持的加密套件。ssl_prefer_server_ciphers on;
:优先使用服务器的加密套件。location / { ... }
:定义根目录和默认索引文件。
4. 重启 Nginx
保存配置文件后,重启 Nginx 以应用更改:
sudo systemctl restart nginx
5. 自动续订
Certbot 会在证书到期前自动续订证书。默认情况下,Certbot 会每天运行一次续订任务。你可以通过以下命令手动测试续订过程:
sudo certbot renew --dry-run
sudo certbot renew --dry-run
:模拟续订过程,确保一切正常。
6. 配置定时任务
虽然 Certbot 默认会每天运行一次续订任务,但为了确保万无一失,你可以手动配置一个定时任务。编辑 /etc/crontab
文件,添加以下行:
0 3 * * * root /usr/bin/certbot renew --quiet && systemctl reload nginx
或者
echo '0 3 * * * root /usr/bin/certbot renew --quiet && systemctl reload nginx' >> /etc/crontab
0 3 * * *
:每天凌晨3点执行任务。root
:以 root 用户身份运行。/usr/bin/certbot renew --quiet
:运行 Certbot 续订命令,并静默输出。&& systemctl reload nginx
:如果续订成功,重新加载 Nginx 配置。
7. 验证证书
你可以使用浏览器或在线工具(如 SSL Labs 的 SSL Test)来验证证书是否正确安装和配置。