温馨提示×

linux nginx如何开启ssl

小樊
33
2026-10-10 20:51:29
栏目: 云计算

在 Linux 上使用 Nginx 开启 SSL(HTTPS),一般步骤如下(以 Let’s Encrypt 免费证书 和 自签名证书 两种方式说明)。


一、使用 Let’s Encrypt 免费 SSL(推荐)

1. 安装 Nginx(如已安装可跳过)

# Ubuntu / Debian
sudo apt update
sudo apt install nginx

# CentOS / Rocky / Alma
sudo yum install nginx

2. 安装 Certbot

# Ubuntu / Debian
sudo apt install certbot python3-certbot-nginx

# CentOS
sudo yum install epel-release
sudo yum install certbot python3-certbot-nginx

3. 申请并自动配置 SSL

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

✅ Certbot 会自动修改 Nginx 配置并开启 HTTPS

4. 自动续期测试

sudo certbot renew --dry-run

二、使用自签名证书(测试环境)

1. 生成私钥和证书

sudo mkdir -p /etc/nginx/ssl
sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/nginx/ssl/nginx.key \
  -out /etc/nginx/ssl/nginx.crt

按提示填写信息(Common Name 填域名或 IP)


2. 配置 Nginx SSL

编辑站点配置:

sudo vim /etc/nginx/conf.d/ssl.conf

示例配置:

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate     /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    location / {
        root /usr/share/nginx/html;
        index index.html;
    }
}

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}

3. 检查并重启 Nginx

sudo nginx -t
sudo systemctl restart nginx

三、防火墙放行 HTTPS

# firewalld
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

# ufw
sudo ufw allow 443

四、常见问题

  • 浏览器提示不安全:自签名证书正常现象
  • SSL 不生效:检查 listen 443 ssl 是否写对
  • 证书路径错误:确认文件权限和路径

如果你告诉我:

  • 系统版本(Ubuntu / CentOS)
  • 是否已有域名
  • 是否用于生产环境

我可以给你更精确的配置。

0 踩