使用 Let's Encrypt 和 Certbot 为 Nginx 服务器颁发免费 SSL 证书

使用 Let's Encrypt 和 Certbot 为 Nginx 服务器颁发免费 SSL 证书

使用 Let's Encrypt 和 Certbot 为 Nginx 服务器颁发免费 SSL 证书的详细步骤

步骤1:前提条件
你的域名(例如 mydomain.com)必须通过 DNS 指向你的服务器 IP。

服务器上已安装并运行 Nginx。

如果还未安装 Nginx,可以运行下面命令进行安装:

sudo apt update
sudo apt install nginx

步骤2:安装 Certbot 和 Nginx 插件
安装 Certbot 及其 Nginx 插件包:

sudo apt install certbot python3-certbot-nginx

步骤3:准备好你的 Nginx 域名配置
确保你已经为你的域名创建了 Nginx 服务器块配置,文件路径通常是 /etc/nginx/sites-available/mydomain.com

示例最简配置:

text
server {
    listen 80;
    listen [::]:80;

    server_name mydomain.com;

    root /var/www/mydomain.com;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}

启用站点(如果还未启用):

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

步骤4:自动获取并安装 SSL 证书
运行 Certbot 并使用 Nginx 插件自动获取和安装证书:

sudo certbot --nginx -d mydomain.com

Certbot 会提示你输入邮箱地址并同意 Let's Encrypt 的服务条款。

Certbot 会自动通过 HTTP-01 挑战验证你对域名的所有权。

Certbot 会自动修改你的 Nginx 配置以使用 SSL 证书。如果你选择的话,Certbot 会设置 HTTPS 强制跳转。

步骤5:验证证书安装
证书安装完成后,Certbot 会显示证书路径和成功信息。此时你可以通过浏览器访问:
https://mydomain.com
检查 HTTPS 连接。

步骤6:确保自动续期正常工作
Let's Encrypt 证书有效期为90天,Certbot 会自动设置续期任务。

你可以通过以下命令测试续期功能:

sudo certbot renew --dry-run

如果成功,证书会自动续期,无需手动干预。