在 Linux 上通过 Nginx 开启 SSL(HTTPS),通常包括:申请/生成证书 → 配置 Nginx → 重载 Nginx。下面给你一套常见、可用的做法。
适合有公网域名的情况。
# 安装 certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
# 自动申请并配置
sudo certbot --nginx -d example.com -d www.example.com
certbot 会自动:
没有域名或仅本地测试时使用。
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/nginx/ssl/nginx.key \
-out /etc/nginx/ssl/nginx.crt
按提示填写信息即可。
编辑站点配置文件(如 /etc/nginx/conf.d/ssl.conf 或 /etc/nginx/sites-enabled/default):
server {
listen 80;
server_name example.com;
# 强制跳转 HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/nginx/ssl/nginx.crt;
ssl_certificate_key /etc/nginx/ssl/nginx.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
# 检查配置
sudo nginx -t
# 重载配置
sudo systemctl reload nginx
# UFW
sudo ufw allow 443/tcp
# firewalld
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
浏览器访问:
https://example.com
或命令行:
curl -I https://example.com
journalctl -u nginx如果你告诉我:
我可以给你更精确的一键配置方案。