debian

Nginx在Debian上的SSL证书安装

小樊
36
2025-06-12 18:30:38
栏目: 云计算

在Debian上安装Nginx并配置SSL证书的步骤如下:

  1. 安装Nginx: 如果您还没有安装Nginx,可以使用包管理器进行安装。例如,在Debian/Ubuntu系统上运行:

    sudo apt update
    sudo apt install nginx
    
  2. 生成或获取SSL证书: 可以使用Let’s Encrypt免费获取证书,或者使用其他证书颁发机构(CA)。以下是使用Let’s Encrypt获取证书的命令:

    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d your_domain.com -d www.your_domain.com
    
  3. 配置Nginx反向代理: 创建或编辑Nginx配置文件。假设您的域名是example.com,在/etc/nginx/sites-available/目录下创建或编辑一个配置文件:

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

    添加以下配置来设置Nginx为HTTPS反向代理:

    server {
        listen 80;
        listen [::]:80;
        server_name example.com www.example.com;
        # Redirect all HTTP requests to HTTPS
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name example.com www.example.com;
        # SSL configuration
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers HIGH:!aNULL:!MD5;
        # Proxy pass configuration
        location / {
            proxy_pass http://127.0.0.1:8080; # 修改为您的后端服务端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    

    其中,proxy_pass应指向您服务的内部IP和端口(例如http://127.0.0.1:8080),ssl_certificatessl_certificate_key路径指向您的SSL证书文件。

  4. 启用配置并重启Nginx: 启用该站点配置:

    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
    

    测试Nginx配置的正确性:

    sudo nginx -t
    

    如果测试通过,重载Nginx使新配置生效:

    sudo systemctl reload nginx
    
  5. 测试与验证: 测试HTTPS访问:通过浏览器访问https://example.com,确保页面加载正常,且通过HTTPS进行访问。 验证SSL/TLS:使用curl或其他工具测试SSL配置是否正确:

    curl -I https://example.com
    

    确保返回的头信息中显示HTTP状态为200 OK,并且SSL连接正常。

0
看了该问题的人还看了