目录
环境准备
确保你的服务器上已安装以下软件:
- Nginx:用于处理 HTTP 请求。
- Certbot:用于申请和管理 SSL 证书。
- 域名:id_is_null.com (随便打的 根据实际来)
安装 Certbot
在 CentOS 系统上,可以使用以下命令安装 Certbot:
yum install certbot -y
配置 Nginx
要使用 HTTP-01 验证方法,您需要配置 Nginx 以支持 Certbot 的验证请求。您需要在 Nginx 配置文件中添加以下内容:
Nginx 配置示例
server {
listen 80;
server_name id_is_null.com;
location /.well-known/ {
root /opt/web/; # 这里指定用于存放验证文件的目录
}
location / {
# 其他配置
}
}
配置说明
location /.well-known/
:此块用于处理 Certbot 的验证请求。root /opt/web/;
:指定验证文件的存放路径。Certbot 将在此路径下创建验证文件。
确保 Nginx 配置无误后,重新加载 Nginx:
systemctl reload nginx
申请 SSL 证书
使用 Certbot 申请 SSL 证书的命令如下:
certbot certonly --email test@test.com --webroot -w /opt/web/ --preferred-challenges http-01 -d id_is_null.com --non-interactive --agree-tos --force-renewal
参数说明
certonly
:仅申请证书,不自动配置 Web 服务器。--email test@test.com
:提供用于接收重要通知的电子邮件地址。--webroot -w /opt/web/
:指定用于 HTTP 验证的 Web 根目录。--preferred-challenges http-01
:指定使用 HTTP-01 验证。-d id_is_null.com
:指定要申请证书的域名。--non-interactive
:以非交互式模式运行,不会提示输入。--agree-tos
:自动同意 Let's Encrypt 的服务条款。--force-renewal
:强制续签证书,即使证书未到期。
这样他会在/opt/web/.well-known/ 自动创建认证文件,并认证颁发证书,注意 你的网站一定要能够通过80或443访问才可通过认证。
运行结果
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/id_is_null.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/id_is_null.com/privkey.pem
Your certificate will expire on 2024-12-28.
配置 Nginx 使用 SSL 证书
要使 Nginx 使用新申请的 SSL 证书,请在 Nginx 配置文件中添加以下内容:
server {
listen 443 ssl;
server_name id_is_null.com;
ssl_certificate /etc/letsencrypt/live/id_is_null.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/id_is_null.com/privkey.pem;
location / {
# 其他配置
}
}
确保 Nginx 配置无误后,重新加载 Nginx:
systemctl reload nginx
删除 SSL 证书
如果你需要删除某个证书,可以使用以下命令:
certbot delete --cert-name id_is_null.com --non-interactive --agree-tos
参数说明
delete
:删除指定的证书。--cert-name id_is_null.com
:指定要删除的证书名称。--non-interactive
:以非交互式模式运行。--agree-tos
:自动同意 Let's Encrypt 的服务条款。
注意事项
删除证书后,相关文件将被从 /etc/letsencrypt/live/
目录中移除。
设置定时任务自动续签
为了确保 SSL 证书不会过期,我们可以设置定时任务(cron)自动续签证书。运行以下命令以编辑 cron 表:
crontab -e
在打开的编辑器中添加以下行:
0 0 1 * * certbot certonly --email test@test.com --webroot -w /opt/web/ --preferred-challenges http-01 -d id_is_null.com --non-interactive --agree-tos --force-renewal
配置说明
0 0 1 * *
:表示每月的第一天凌晨 0 点执行该命令。certbot certonly --email test@test.com --webroot -w /opt/web/ --preferred-challenges http-01 -d id_is_null.com --non-interactive --agree-tos --force-renewal
:运行 Certbot 的续签命令。
保存并退出编辑器后,Cron 将自动执行该任务。