当前位置:首页 > 服务器技术 > 正文

Nginx SSL证书配置(手把手教你为网站启用HTTPS)

在当今互联网环境中,为网站启用 HTTPS 已经成为基本的安全要求。使用 Nginx SSL配置 可以有效保护用户数据、提升网站可信度,并有助于搜索引擎优化(SEO)。本教程将从零开始,手把手教你如何在 Nginx 上配置 SSL 证书,即使是小白也能轻松上手。

什么是 SSL 证书?

SSL(Secure Sockets Layer)证书是一种数字证书,用于在 Web 服务器和浏览器之间建立加密连接。当你的网站启用了 SSL,网址就会从 http:// 变成 https://,浏览器地址栏通常还会显示一个锁形图标,表示连接是安全的。

Nginx SSL证书配置(手把手教你为网站启用HTTPS) SSL配置  HTTPS网站搭建 免费SSL证书 Nginx安全设置 第1张

准备工作

在开始之前,请确保你已经具备以下条件:

  • 一台运行 Linux 系统的服务器(如 Ubuntu、CentOS)
  • 已安装 Nginx
  • 拥有一个域名并已正确解析到你的服务器 IP
  • 可以访问服务器的 root 或具有 sudo 权限的用户

第一步:获取免费 SSL 证书(推荐 Let's Encrypt)

Let's Encrypt 是一个提供 免费SSL证书 的权威机构,被广泛使用且完全免费。我们将使用 Certbot 工具来申请证书。

1. 安装 Certbot

以 Ubuntu 为例:

sudo apt updatesudo apt install certbot python3-certbot-nginx -y

2. 申请 SSL 证书

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

请将 yourdomain.com 替换为你自己的域名。Certbot 会自动验证域名所有权并为你签发证书,同时还会自动修改 Nginx 配置文件以启用 HTTPS。

第二步:手动配置 Nginx(可选)

如果你希望更深入理解 Nginx安全设置,也可以手动配置。假设你已获得证书文件(通常包括 fullchain.pemprivkey.pem),请按以下步骤操作。

1. 创建证书存放目录

sudo mkdir -p /etc/nginx/ssl

2. 将证书文件复制到该目录

sudo cp your_domain_fullchain.pem /etc/nginx/ssl/sudo cp your_domain_privkey.pem /etc/nginx/ssl/

3. 编辑 Nginx 站点配置文件

sudo nano /etc/nginx/sites-available/yourdomain.com

4. 添加或修改 server 块如下:

server {    listen 443 ssl http2;    server_name yourdomain.com www.yourdomain.com;    ssl_certificate /etc/nginx/ssl/your_domain_fullchain.pem;    ssl_certificate_key /etc/nginx/ssl/your_domain_privkey.pem;    ssl_protocols TLSv1.2 TLSv1.3;    ssl_ciphers HIGH:!aNULL:!MD5;    root /var/www/html;    index index.html index.htm;    location / {        try_files $uri $uri/ =404;    }}# 自动将 HTTP 重定向到 HTTPSserver {    listen 80;    server_name yourdomain.com www.yourdomain.com;    return 301 https://$server_name$request_uri;}

保存并退出编辑器。

第三步:测试并重启 Nginx

在重启前,先测试配置是否正确:

sudo nginx -t

如果显示 syntax is oktest is successful,说明配置无误。

然后重启 Nginx 使配置生效:

sudo systemctl reload nginx

第四步:验证 HTTPS 是否生效

打开浏览器,访问 https://yourdomain.com。如果看到绿色锁图标,并且页面正常加载,说明你的 HTTPS网站搭建 成功了!你也可以使用 SSL Labs 测试工具 检查证书配置的安全等级。

小贴士:自动续期

Let's Encrypt 证书有效期为 90 天。Certbot 默认会设置一个 cron 任务自动续期,你可以通过以下命令手动测试续期是否正常:

sudo certbot renew --dry-run

总结

通过本教程,你已经学会了如何为 Nginx 配置 SSL 证书,成功将网站升级为 HTTPS。这不仅提升了网站安全性,也增强了用户信任。无论是使用自动化工具还是手动配置,Nginx SSL配置 都是现代网站运维的必备技能。

现在,你的网站已经更安全、更专业了!快去试试吧!