温馨提示×

centos nginx如何做SSL证书

小樊
34
2025-12-23 10:34:49
栏目: 云计算

在CentOS上为Nginx配置SSL证书,通常需要以下几个步骤:

  1. 获取SSL证书

    • 你可以从Let’s Encrypt免费获取SSL证书。
    • 或者从其他证书颁发机构(CA)购买。
  2. 安装Certbot(如果你选择使用Let’s Encrypt): Certbot是一个自动化的工具,可以帮助你获取和续订Let’s Encrypt证书。

    sudo yum install epel-release
    sudo yum install certbot python2-certbot-nginx
    
  3. 获取并安装证书: 使用Certbot获取证书。以下命令会自动配置Nginx并启用HTTPS。

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

    运行上述命令后,Certbot会提示你输入电子邮件地址、同意服务条款,并选择一个目录来存储证书文件。Certbot会自动修改Nginx配置文件以启用SSL。

  4. 手动配置Nginx(如果你不使用Certbot): 如果你选择手动配置SSL证书,你需要将证书文件和私钥文件放置在合适的位置,并在Nginx配置文件中引用它们。

    假设你的证书文件是/etc/ssl/certs/yourdomain.com.crt,私钥文件是/etc/ssl/private/yourdomain.com.key,你可以按照以下步骤操作:

    • 将证书和私钥文件复制到Nginx可以访问的目录,例如/etc/nginx/ssl/

      sudo cp /path/to/your/fullchain.pem /etc/nginx/ssl/yourdomain.com.crt
      sudo cp /path/to/your/privkey.pem /etc/nginx/ssl/yourdomain.com.key
      
    • 编辑Nginx配置文件(通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf),添加或修改以下内容:

      server {
          listen 443 ssl;
          server_name yourdomain.com www.yourdomain.com;
      
          ssl_certificate /etc/nginx/ssl/yourdomain.com.crt;
          ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;
      
          ssl_protocols TLSv1.2 TLSv1.3;
          ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384';
          ssl_prefer_server_ciphers on;
      
          location / {
              root /var/www/html;
              index index.html index.htm;
          }
      
          # 其他配置...
      }
      
      server {
          listen 80;
          server_name yourdomain.com www.yourdomain.com;
      
          location / {
              return 301 https://$host$request_uri;
          }
      
          # 其他配置...
      }
      
  5. 重启Nginx: 无论你是使用Certbot还是手动配置,最后都需要重启Nginx以应用更改。

    sudo systemctl restart nginx
    
  6. 验证SSL配置: 你可以使用以下命令来验证Nginx的SSL配置是否正确:

    sudo nginx -t
    

    如果配置正确,你会看到类似以下的输出:

    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
  7. 设置自动续期(如果你使用Let’s Encrypt): Certbot会自动为你设置一个cron任务或systemd定时器来定期续期证书。你可以手动测试续期过程:

    sudo certbot renew --dry-run
    

    如果一切正常,Certbot会尝试续期证书并输出相关信息。

通过以上步骤,你应该能够在CentOS上成功为Nginx配置SSL证书。

0