如何在 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]