admin 发表于 2024-5-16 12:51:57

如何在 Centos 7.6 上配置 Nginx SSL

在 Nginx 上配置 SSL 可以显著提升网站的安全性。以下是一个详细的教程,介绍如何在 Centos 7.6 上使用 Let's Encrypt 为 Nginx 配置 SSL。

一、安装 Certbot 和 Nginx

1. 确保系统已更新:
syum update -y


2. 安装 EPEL 存储库:
sudo yum install -y epel-release


3. 安装 Nginx 和 Certbot:
sudo yum install -y nginx certbot python2-certbot-nginx


4. 启动 Nginx 并设置为开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx

二、配置防火墙

1. 打开 HTTP 和 HT端口:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload


三、获取 SSL 证书

1. 运行 Certbot 获取 SSL 证书并自动配置 Nginx:
sudo certbot --nginx


2. 根据提示输入你的电子邮件地址,同意服务条款,并输入你的域名。例如 `hostssss.com` 和 `www.hostssss.com`。

3. Certbot 将会自动修改你的 Nginx 配置文件以启用 SSL,并重新加载 Nginx。

四、手动配置 SSL(如果需要手动修改配置)

如果你需要手动修改或创建 Nginx 配置文件来启用 SSL,可以按照以下步骤操作:

1. 打Nginx 配置文件(假设你的网站配置文件在 `/etc/nginx/conf.d` 目录下):
sudo vim /etc/nginx/conf.d/your_site.conf


2. 编辑配置文件,使其包含以下内容:
nginx
server {
    listen 80;
    server_name your_domain.com www.hostssss.com;

    # 重定向到 HTTPS
    location / {
      return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl; server_name your_domain.com www.hostssss.com;

    ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256";
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    root /usr/share/nginx/html;
    index index.html index.htm index.php;

    location / {
      try_files $urri/ =404;
    }

    location ~ \.php$ {
      try_files $uri =404;
      fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }

    location ~ /\.ht {
      deny all;
    }
}

- 将 `your_domain.com` 替换为你的实际域名。

3. 创建一个强大的 Diffie-Hellman 参数文件:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048


4. 检查 Nginx 配置文件语法:
sudo nginx -t


5. 重启 Nginx 使配置生效:
sudo systemctl restart nginx


五、自动续订 SSL 证书
tbot 可以自动续订证书。要验证续订功能,运行以下命令:
sudo certbot renew --dry-run


确保这个命令执行没有错误,然后添加一个 cron 任务来自动续订证书。打开 cron 配置:
sudo crontab -e


添加以下行:
0 0 * * * /usr/bin/certbot renew --quiet

这将设置 Certbot 每天午夜尝试续订证书。

六、验证 SSL 配置

打开浏览器,访问 `https://www.hostssss.com/`,并检查 SSL 证书是否生效。你可以使用 (https://www.ssllabs.com/ssltest/) 这样的工具来进一步验证你的 SSL 配置是否安全。

结论:到此为止,你已经在 CentOS 7.6 上使用 Let's Encrypt 为 Nginx 配置了 SSL。确保你的 Nginx 配置正确,并且 Certbot 的自动续订功能运行正常。这样,你的网站将安全地使用 HTTPS 进行通信。
页: [1]
查看完整版本: 如何在 Centos 7.6 上配置 Nginx SSL