插件窝 干货文章 Centos7.3怎么安装部署Nginx并配置https

Centos7.3怎么安装部署Nginx并配置https

Nginx example sudo 配置 405    来源:    2025-04-26

CentOS 7.3 安装部署 Nginx 并配置 HTTPS 指南

1. 安装 Nginx

首先更新系统并安装必要的工具:

sudo yum update -y
sudo yum install epel-release -y

然后安装 Nginx:

sudo yum install nginx -y

启动 Nginx 并设置开机自启:

sudo systemctl start nginx
sudo systemctl enable nginx

验证 Nginx 是否正常运行:

sudo systemctl status nginx

如果防火墙开启,需要开放 HTTP 和 HTTPS 端口:

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

2. 配置 HTTPS

2.1 获取 SSL 证书

你可以使用 Let's Encrypt 免费证书或购买商业证书。这里以 Let's Encrypt 为例:

安装 certbot:

sudo yum install certbot python2-certbot-nginx -y

获取证书(将 example.com 替换为你的域名):

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

按照提示操作,certbot 会自动配置 Nginx。

2.2 手动配置 SSL 证书(如果你有自己的证书)

将你的证书文件(.crt 和 .key)上传到服务器,例如:

/etc/ssl/certs/example.com.crt
/etc/ssl/private/example.com.key

2.3 配置 Nginx

编辑 Nginx 配置文件:

sudo vi /etc/nginx/conf.d/example.com.conf

添加以下内容(根据实际情况修改):

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

server {
    listen 443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate /etc/ssl/certs/example.com.crt;
    ssl_certificate_key /etc/ssl/private/example.com.key;

    # 优化 SSL 配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 其他配置
    root /usr/share/nginx/html;
    index index.html index.htm;

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

    # 启用 HSTS
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

测试 Nginx 配置:

sudo nginx -t

如果测试通过,重新加载 Nginx:

sudo systemctl reload nginx

3. 自动续订 Let's Encrypt 证书

如果是使用 Let's Encrypt,设置自动续订:

sudo crontab -e

添加以下行(每天凌晨 2:30 检查并续订):

30 2 * * * /usr/bin/certbot renew --quiet

4. 验证 HTTPS 配置

访问你的网站,确保: 1. HTTP 自动跳转到 HTTPS 2. 浏览器地址栏显示安全锁标志 3. 可以使用 SSL Labs 测试工具 检查 SSL 配置

常见问题解决

  1. 端口冲突:确保 80 和 443 端口没有被其他服务占用

    sudo netstat -tulnp | grep -E '80|443'
    
  2. 权限问题:确保证书文件有正确的权限

    sudo chmod 600 /etc/ssl/private/example.com.key
    
  3. SELinux 问题:如果遇到权限问题,可以临时禁用 SELinux 测试

    sudo setenforce 0
    
  4. 证书过期:定期检查证书有效期

    sudo openssl x509 -noout -dates -in /etc/letsencrypt/live/example.com/cert.pem
    

按照以上步骤,你应该能够在 CentOS 7.3 上成功安装 Nginx 并配置 HTTPS。