ubuntu

ubuntu nginx ssl配置步骤是什么

小樊
33
2025-07-14 03:05:00
栏目: 云计算

在Ubuntu上配置Nginx以使用SSL证书,通常需要以下步骤:

  1. 安装Nginx(如果尚未安装):

    sudo apt update
    sudo apt install nginx
    
  2. 获取SSL证书: 你可以从证书颁发机构(CA)购买SSL证书,或者如果你只是测试或开发环境,可以使用Let’s Encrypt免费获取。

    • 使用Certbot(推荐的方式,用于Let’s Encrypt证书):

      sudo apt install certbot python3-certbot-nginx
      sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
      

      在这个过程中,Certbot会自动更新你的Nginx配置文件。

    • 手动安装证书: 如果你已经有了证书文件(通常是.crt.pem格式)和私钥文件(通常是.key格式),你需要将它们放在服务器上的某个位置,比如/etc/ssl/certs//etc/ssl/private/

  3. 配置Nginx: 编辑Nginx的SSL服务器块配置文件。通常,这个文件位于/etc/nginx/sites-available/目录下,并且有一个对应的符号链接到sites-enabled目录。

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

    server块中添加或修改以下内容:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
        return 301 https://$host$request_uri; # 将所有HTTP请求重定向到HTTPS
    }
    
    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate /etc/ssl/certs/yourdomain.com.crt; # 你的证书文件路径
        ssl_certificate_key /etc/ssl/private/yourdomain.com.key; # 你的私钥文件路径
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 启用TLS协议
        ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...'; # 强加密套件
        ssl_prefer_server_ciphers on;
    
        location / {
            root /var/www/yourdomain.com;
            index index.html index.htm;
        }
    
        # 其他location配置...
    }
    

    确保将yourdomain.com替换为你的实际域名,并且将证书和密钥的路径替换为实际的文件路径。

  4. 测试Nginx配置: 在重新加载Nginx之前,先测试配置文件是否有语法错误。

    sudo nginx -t
    
  5. 重新加载Nginx: 如果配置测试成功,重新加载Nginx以应用更改。

    sudo systemctl reload nginx
    
  6. 更新防火墙设置(如果有必要): 如果你的服务器运行的是UFW防火墙,确保允许HTTPS流量。

    sudo ufw allow 'Nginx Full'
    
  7. 验证SSL配置: 使用SSL检查工具(如SSL Labs的SSL Server Test)来验证你的SSL配置是否正确和安全。

完成以上步骤后,你的Ubuntu服务器应该已经成功配置了Nginx以使用SSL证书。记得定期更新你的证书以避免过期。如果你使用的是Let’s Encrypt,Certbot通常会设置一个cron作业来自动续订证书。

0
看了该问题的人还看了