在 Nginx 上搭建 HTTPS 网站需要以下几个步骤:
1、获取 SSL 证书:
你可以从受信任的证书颁发机构(CA)购买 SSL 证书,也可以使用 Let's Encrypt 免费获取。
2、安装 Nginx:
确保你已经安装了 Nginx,如果没有安装,可以使用以下命令进行安装(以 Ubuntu 为例):
sudo apt update sudo apt install nginx
3、配置 Nginx:
编辑 Nginx 配置文件,通常位于/etc/nginx/sites-available/
目录下,创建一个新的配置文件或编辑现有的文件,创建一个名为example.com
的文件:
sudo nano /etc/nginx/sites-available/example.com
4、添加 SSL 配置:
在配置文件中添加以下内容:
server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name example.com www.example.com; ssl_certificate /path/to/your/fullchain.pem; ssl_certificate_key /path/to/your/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'HIGH:!aNULL:!MD5'; location / { root /var/www/html; index index.html index.htm; } }
请将/path/to/your/fullchain.pem
和/path/to/your/privkey.pem
替换为你实际的证书路径。
5、启用站点并重启 Nginx:
创建一个符号链接到sites-enabled
目录:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
测试 Nginx 配置是否正确:
sudo nginx -t
如果配置正确,重启 Nginx:
sudo systemctl restart nginx
6、验证 HTTPS 配置:
打开浏览器,访问https://example.com
,确保网站能够通过 HTTPS 正常访问。
使用 Let's Encrypt 获取免费 SSL 证书
如果你选择使用 Let's Encrypt 来获取免费的 SSL 证书,可以使用 Certbot 工具,以下是具体步骤:
1、安装 Certbot:
sudo apt install certbot python3-certbot-nginx
2、获取证书:
sudo certbot --nginx -d example.com -d www.example.com
按照提示完成域名验证,Certbot 会自动修改你的 Nginx 配置文件以支持 HTTPS。
3、自动续期:
Let's Encrypt 的证书有效期为90天,因此需要设置自动续期,Certbot 默认会创建一个 cron job 来处理这个任务,你可以通过以下命令手动测试续期:
sudo certbot renew --dry-run
这样,你就成功在 Nginx 上搭建了一个支持 HTTPS 的网站。