提升您网站的安全性:轻松使用 Certbot 完成 NGINX 与 SSL 设置
Source: Dev.to
在当今的数字环境中,网站安全已成为必需。由于网络威胁的增加以及用户对隐私意识的提升,使用 HTTPS 保护网站已成为信任、性能和搜索引擎排名的关键。SSL/TLS 证书是任何严肃的线上存在的必要条件,因为搜索引擎更青睐加密网站,现代浏览器也会在网站不安全时主动提醒用户。
NGINX 是最广泛使用的 Web 服务器之一,全球数百万网站都在使用它,并以卓越的性能和稳定性著称。当与 SSL 加密结合使用时,它为提供 Web 内容提供了快速、安全、可靠的基础。然而,由于配置和证书管理的复杂性,许多开发者和系统管理员在设置 SSL 时会感到望而却步。
这时 Certbot 就派上用场了。Certbot 通过自动化从 Let’s Encrypt 获取、安装和续订免费 SSL 证书的过程,消除了 HTTPS 设置中大量手动工作。在本指南中,我们将:
- 安装 NGINX。
- 使用 Certbot 为其配置 SSL。
- 确保您的网站保持安全,几乎无需维护。
Source: …
在 Ubuntu 上安装和配置 NGINX
安装和配置 Web 服务器是使用 SSL 保护网站的第一步。我们将使用 NGINX,这是一款高性能、轻量级的 Web 服务器,常用于反向代理和提供 Web 应用。
前置条件
- 一台 Ubuntu 服务器(18.04、20.04 或更高版本)
- 一个具有
sudo权限的非 root 用户 - 一个指向服务器 IP 地址的已注册域名
安装 NGINX
sudo apt update
sudo apt install nginx
安装完成后,NGINX 会自动在服务器上启动。验证其是否处于活动状态:
sudo service nginx status
或者,在浏览器中打开服务器的公网 IP 地址。如果 NGINX 正常工作,你应该会看到默认的 “Welcome to NGINX” 页面。
配置 Server Block(服务器块)
NGINX 使用 server blocks(类似 Apache 的虚拟主机)来在同一台服务器上管理多个网站。
cd /etc/nginx/sites-enabled
为你的域名创建一个新的配置文件(将 proxy 替换为有意义的名称):
sudo nano proxy
添加以下配置(将占位符替换为实际值):
server {
listen 80;
listen [::]:80;
server_name YOUR-DOMAIN-NAME;
location / {
proxy_pass http://localhost:PORT/;
}
}
配置说明
listen 80;– 监听传入的 HTTP 流量。server_name– 你的实际域名(例如example.com)。proxy_pass– 将请求转发到本地运行的应用(如 Node.js 或后端服务)。PORT– 应用监听的端口(例如3000)。
保存并退出文件(CTRL + O,然后 CTRL + X)。
测试 NGINX 配置
在应用更改之前,始终测试配置语法:
sudo nginx -t
如果输出显示 “syntax is ok” 和 “test is successful”,则可以继续。
重启并检查 NGINX 状态
sudo service nginx restart
sudo service nginx status
使用 Certbot(Let’s Encrypt)为 NGINX 加密
在 NGINX 已成功通过 HTTP 提供应用后,启用 HTTPS 是下一步关键操作。SSL/TLS 加密可以防止中间人攻击,提升用户信任度,并有助于搜索引擎排名。
使用 Snap 安装 Certbot
在 Ubuntu 上,推荐通过 Snap 安装 Certbot,因为它能确保始终获得最新且最安全的版本。
sudo snap install core
sudo snap refresh core
安装 Certbot:
sudo snap install --classic certbot
创建符号链接,使 certbot 命令在全局可用:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
验证安装:
certbot --version
为 NGINX 获取并安装 SSL 证书
Certbot 能自动检测你的 NGINX 配置,并在最少输入的情况下完成 SSL 配置。
sudo certbot --nginx
在此过程中,你将被要求:
- 输入你的电子邮件地址(用于续期和安全通知)。
- 同意 Let’s Encrypt 的服务条款。
- 选择是否将你的电子邮件地址分享给电子前哨基金会(Electronic Frontier Foundation)。
- 选择要为其启用 HTTPS 的域名。
- 决定是否将所有 HTTP 流量重定向到 HTTPS。
脚本执行完毕后,Certbot 将会:
- 从 Let’s Encrypt 获取受信任的 SSL 证书。
- 修改你的 NGINX server block,使其在 443 端口监听,并添加相应的
ssl_certificate与ssl_certificate_key指令。 - 设置自动续期(默认会安装 systemd 定时器)。
验证 HTTPS
在浏览器中使用 https:// 打开你的域名。你应该看到锁形图标,表明证书有效。
自动续期
Certbot 的续期定时器会每天运行两次。要手动测试续期过程:
sudo certbot renew --dry-run
如果干运行成功,证书将在到期前自动续期。
完成! 你的 NGINX 服务器现在已通过免费且自动续期的 Let’s Encrypt 证书安全地提供 HTTPS 服务。 🎉
Source:
安装和配置 SSL(使用 Certbot 与 NGINX)
前置条件
- 正在运行 NGINX 的服务器
- 指向您服务器 IP 地址的域名
- Root 或 sudo 权限
安装 Certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx
获取 SSL 证书
运行交互式 Certbot 命令:
sudo certbot --nginx
在此过程中,系统会提示您:
- 输入您的电子邮件地址(用于续期通知)
- 同意 Let’s Encrypt 的服务条款
- 选择要保护的域名
- 是否将 HTTP 流量重定向到 HTTPS(推荐)
完成后,Certbot 将会:
- 生成 SSL 证书
- 自动更新您的 NGINX 配置
- 重新加载 NGINX 并启用 HTTPS
验证 HTTPS 配置
Certbot 完成后,在浏览器中打开:
https://YOUR-DOMAIN-NAME
您应该在浏览器地址栏看到安全连接标识(🔒)。
自动证书续期
Let’s Encrypt 证书有效期为 90 天。Certbot 会自动设置续期计时器,您也可以手动测试:
sudo certbot renew --dry-run
此测试可确认您的 SSL 证书将在不影响服务的情况下自动续期。
