centos

centos nginx怎么启用ssl加密

小樊
45
2025-10-04 23:53:11
栏目: 云计算

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

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

    sudo yum install epel-release
    sudo yum install nginx
    
  2. 获取SSL证书: 你可以从Let’s Encrypt免费获取SSL证书,或者购买一个。以下是使用Certbot(Let’s Encrypt的客户端)获取证书的步骤:

    • 安装Certbot和Nginx插件:

      sudo yum install certbot python2-certbot-nginx
      
    • 运行Certbot以获取并配置SSL证书:

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

      yourdomain.comwww.yourdomain.com替换为你的域名。

    • Certbot将自动配置Nginx并重启服务以应用更改。

  3. 手动配置SSL(如果你不使用Certbot):

    • 创建一个新的Nginx服务器块文件,例如/etc/nginx/conf.d/yourdomain.com.conf

      sudo nano /etc/nginx/conf.d/yourdomain.com.conf
      
    • 添加以下配置,替换yourdomain.com为你的域名,并指定证书和密钥文件的路径:

      server {
          listen 443 ssl;
          server_name yourdomain.com www.yourdomain.com;
      
          ssl_certificate /etc/pki/tls/certs/yourdomain.com.crt;
          ssl_certificate_key /etc/pki/tls/private/yourdomain.com.key;
      
          ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
          ssl_ciphers HIGH:!aNULL:!MD5;
      
          location / {
              root /var/www/html;
              index index.html index.htm;
          }
      
          # 其他配置...
      }
      
    • 测试Nginx配置是否正确:

      sudo nginx -t
      
    • 如果配置正确,重启Nginx以应用更改:

      sudo systemctl restart nginx
      
  4. 重定向HTTP到HTTPS(可选): 如果你想将所有HTTP流量重定向到HTTPS,可以在Nginx配置中添加一个新的服务器块来处理HTTP请求:

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

    确保这个服务器块在SSL配置之前定义,以便HTTP请求首先被捕获并重定向到HTTPS。

  5. 防火墙设置: 如果你有防火墙运行,确保开放443端口以允许HTTPS流量:

    sudo firewall-cmd --permanent --zone=public --add-service=https
    sudo firewall-cmd --reload
    

完成以上步骤后,你的CentOS服务器上的Nginx应该已经启用了SSL加密。记得定期更新你的证书以避免过期。如果你使用Certbot,它通常会为你处理证书的自动续期。

0
看了该问题的人还看了