温馨提示×

如何在centos上为nginx配置https

小樊
37
2025-12-11 14:15:21
栏目: 智能运维

在CentOS上为Nginx配置HTTPS涉及几个步骤,包括获取SSL证书、配置Nginx以及重启Nginx服务。以下是详细步骤:

1. 获取SSL证书

你可以从Let’s Encrypt免费获取SSL证书,或者购买一个商业证书。

使用Let’s Encrypt获取证书

  1. 安装Certbot

    sudo yum install epel-release
    sudo yum install certbot python2-certbot-nginx
    
  2. 获取证书

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

    按照提示完成证书的获取和配置。

2. 配置Nginx

假设你已经安装了Nginx并且有一个基本的配置文件 /etc/nginx/nginx.conf,你需要编辑你的站点配置文件(通常位于 /etc/nginx/conf.d//etc/nginx/sites-available/ 目录下)。

示例配置

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

    root /var/www/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }
}

3. 重启Nginx服务

配置完成后,重启Nginx服务以应用更改:

sudo systemctl restart nginx

4. 验证配置

打开浏览器并访问 https://yourdomain.com,你应该能够看到你的网站并且浏览器地址栏会显示安全锁标志。

注意事项

  • 自动续期:Let’s Encrypt证书有效期为90天,Certbot可以自动续期证书。你可以设置一个cron任务来自动续期:

    sudo crontab -e
    

    添加以下行:

    0 0,12 * * * certbot renew --post-hook "systemctl reload nginx"
    
  • 防火墙设置:确保你的防火墙允许443端口的流量:

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

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

0