温馨提示×

怎样在centos nginx启用ssl

小樊
43
2025-12-21 11:37:47
栏目: 云计算

在CentOS上为Nginx启用SSL,你需要遵循以下步骤:

  1. 获取SSL证书

    • 你可以从Let’s Encrypt免费获取SSL证书。
    • 或者,如果你有购买证书,可以从你的证书提供商那里获取。
  2. 安装Certbot(如果你选择使用Let’s Encrypt): Certbot是一个自动化的工具,可以帮助你获取和更新Let’s Encrypt证书。在CentOS上安装Certbot的命令如下:

    sudo yum install epel-release
    sudo yum install certbot python-certbot-nginx
    
  3. 运行Certbot获取证书: 使用Certbot获取证书的命令如下:

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

    替换yourdomain.comwww.yourdomain.com为你的域名。Certbot会自动配置Nginx并重启服务。

  4. 手动配置Nginx(如果你不使用Certbot): 如果你选择手动配置SSL,你需要编辑Nginx的配置文件。通常,这些文件位于/etc/nginx/conf.d//etc/nginx/sites-available/目录下。

    下面是一个基本的SSL配置示例:

    server {
        listen 443 ssl;
        server_name yourdomain.com www.yourdomain.com;
    
        ssl_certificate /path/to/your/fullchain.pem;
        ssl_certificate_key /path/to/your/privkey.pem;
    
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH';
    
        location / {
            root /var/www/html;
            index index.html index.htm;
        }
    
        # 其他配置...
    }
    

    确保将/path/to/your/fullchain.pem/path/to/your/privkey.pem替换为你的SSL证书和私钥的实际路径。

  5. 测试Nginx配置: 在重新加载Nginx之前,你应该测试配置文件是否有语法错误:

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

    sudo systemctl reload nginx
    
  7. 设置自动续期(如果你使用Let’s Encrypt): Let’s Encrypt证书有效期为90天,因此你需要设置自动续期。Certbot会创建一个定时任务来自动续期证书:

    sudo crontab -e
    

    查找以下行并取消注释(删除行首的#):

    0 */12 * * * root certbot renew --post-hook "systemctl reload nginx"
    

    这将确保每12小时检查一次证书是否需要续期,并在续期后重新加载Nginx。

完成以上步骤后,你的Nginx服务器应该已经成功启用了SSL。记得定期检查证书的有效期,并确保自动续期机制正常工作。

0