CentOS 7 中配置 Nginx HTTPS

一、准备工作
确认 Nginx 已安装:
若未安装 Nginx,执行以下命令安装:

sudo yum update
sudo yum install nginx

获取 SSL 证书:
购买证书:从正规证书颁发机构(如阿里云、腾讯云、DigiCert 等)购买证书,并下载证书文件(通常包含 .crt 或 .pem 格式的证书文件和私钥文件 .key)。
使用 Let’s Encrypt 免费证书:通过 Certbot 工具获取。先安装 Certbot 和 Nginx 插件:

sudo yum install epel-release
sudo yum install certbot python2-certbot-nginx

二、配置 SSL 证书(以购买证书为例)
创建证书存放目录:

sudo mkdir -p /etc/nginx/ssl

上传证书文件:
将证书文件(如 your_domain.crt)和私钥文件(如 your_domain.key)上传至 /etc/nginx/ssl 目录,确保文件权限正确:

sudo chmod 600 /etc/nginx/ssl/*.key

配置 Nginx 服务器块:
打开 Nginx 配置文件,通常位于 /etc/nginx/conf.d/your_domain.conf 或 /etc/nginx/nginx.conf(根据实际情况修改):

sudo vi /etc/nginx/conf.d/your_domain.conf
添加或修改以下内容:
nginx
server {
    listen 443 ssl;
    server_name your_domain.com;  # 替换为实际域名

    ssl_certificate /etc/nginx/ssl/your_domain.crt;
    ssl_certificate_key /etc/nginx/ssl/your_domain.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        root /var/www/html;  # 网站根目录,根据实际情况修改
        index index.html index.htm;
    }
}
listen 443 ssl:监听 443 端口并启用 SSL。
ssl_certificate 和 ssl_certificate_key:指定证书和私钥路径。
ssl_protocols:设置支持的 TLS 协议版本。
ssl_ciphers:配置加密套件。
添加 HTTP 到 HTTPS 重定向(可选):
为确保所有 HTTP 请求自动重定向到 HTTPS,可添加以下配置:
nginx
server {
    listen 80;
    server_name your_domain.com;
    return 301 https://$server_name$request_uri;
}

三、使用 Let’s Encrypt 获取免费证书并配置
获取证书:
执行以下命令获取证书并自动配置 Nginx:

sudo certbot --nginx -d your_domain.com

按照提示输入邮箱地址并同意条款,Certbot 会自动更新 Nginx 配置并部署证书。
验证证书自动更新:
Let’s Encrypt 证书有效期为 90 天,系统会自动设置 cron 任务进行 renewal。可手动测试更新:

sudo certbot renew --dry-run

四、测试与验证
检查 Nginx 配置语法:

sudo nginx -t

若输出 syntax is ok 和 test is successful,表示配置正确。
重启 Nginx 服务:

sudo systemctl restart nginx

验证 HTTPS 连接:
使用浏览器访问 https://your_domain.com,检查是否显示安全锁图标,且地址栏显示 https。也可使用工具如 openssl s_client 进行命令行验证:

openssl s_client -connect your_domain.com:443 -servername your_domain.com

五、常见问题及解决方法
证书链不完整:
若浏览器提示证书不受信任,可能是证书链不完整。需将中级证书(.ca-bundle 或 .chain 文件)与主证书合并。
权限问题:
确保证书和私钥文件权限为 600,且 Nginx 用户(通常为 nginx)有权限访问。
端口冲突:
若 Nginx 无法启动,检查 80 或 443 端口是否被其他进程占用,可使用 sudo lsof -i :443 查看。
通过以上步骤,即可在 CentOS 7 系统中成功配置 Nginx 的 HTTPS,实现网站的安全访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值