nginx在centos上ssl安装步骤
导读:在 CentOS 上为 Nginx 安装与启用 SSL 的完整步骤 一 准备与前置检查 确保证书已签发并下载了适用于 Nginx 的证书文件(常见为 .crt/.pem 证书与 .key 私钥),若下载包内只有证书而无私钥,说明申请时使...
在 CentOS 上为 Nginx 安装与启用 SSL 的完整步骤
一 准备与前置检查
- 确保证书已签发并下载了适用于 Nginx 的证书文件(常见为 .crt/.pem 证书与 .key 私钥),若下载包内只有证书而无私钥,说明申请时使用了已有 CSR,需使用本地保存的私钥进行部署。将证书与私钥上传至服务器安全目录,例如 /etc/ssl/cert/。
- 开放防火墙与安全组端口 443/TCP,否则即使配置完成也无法访问 HTTPS。
- 确认 Nginx 已安装并包含 http_ssl_module 模块,可执行:nginx -V 2> & 1 | grep – ‘–with-http_ssl_module’;若未包含,需要重新编译安装或安装带 SSL 模块的版本。
- 域名已完成 ICP 备案(中国内地服务器)且 DNS A 记录已解析到服务器公网 IP。
- 多服务器场景需对每台服务器分别部署同一证书;证书域名需与实际访问域名一一匹配。
二 方式一 手动部署已有或购买的 SSL 证书
- 准备证书与目录
- 证书与私钥路径示例:
- 证书:/etc/ssl/cert/your_domain.pem(也可能是 .crt)
- 私钥:/etc/ssl/cert/your_domain.key
- 建议权限:私钥仅对 root 可读:chmod 600 /etc/ssl/cert/*.key
- 证书与私钥路径示例:
- 编辑 Nginx 配置(/etc/nginx/conf.d/ssl.conf 或 /etc/nginx/nginx.conf 的 http 块内新增 server 块)
- 示例:
server { listen 443 ssl http2; server_name your_domain.com www.your_domain.com; ssl_certificate /etc/ssl/cert/your_domain.pem; ssl_certificate_key /etc/ssl/cert/your_domain.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_prefer_server_ciphers on; # 可选:开启 HSTS(谨慎评估后使用) # add_header Strict-Transport-Security "max-age=63072000" always; root /var/www/html; index index.html; location / { try_files $uri $uri/ =404; } } # HTTP 自动跳转 HTTPS server { listen 80; server_name your_domain.com www.your_domain.com; return 301 https://$host$request_uri; }
- 示例:
- 检查配置并生效
- 语法检查:nginx -t
- 重载或重启:systemctl reload nginx 或 systemctl restart nginx
- 说明
- 若证书包内同时包含 中间证书,请将中间证书内容拼接在域名证书之后,保存为同一 .pem 文件再配置(多数厂商的 Nginx 包已提供合并好的文件)。
三 方式二 使用 Let’s Encrypt 与 Certbot 自动获取并配置
- 安装 Certbot 与 Nginx 插件
- CentOS 7/8(EPEL):sudo yum install epel-release & & sudo yum install certbot python2-certbot-nginx
- CentOS 8/Stream 或已启用 Python 3 的镜像:sudo yum install certbot python3-certbot-nginx
- 获取并自动配置证书
- 单域名:sudo certbot --nginx -d your_domain.com
- 多域名:sudo certbot --nginx -d your_domain.com -d www.your_domain.com
- 按提示选择是否重定向 HTTP→HTTPS,Certbot 会自动修改 Nginx 配置并重启服务。
- 自动续期
- 测试续期:sudo certbot renew --dry-run
- 证书有效期 90 天,建议保持系统时间正确并启用定时续期(Certbot 默认会创建 systemd 定时器或 cron 任务)。
四 验证与常见问题排查
- 访问验证
- 浏览器访问 https://your_domain.com,确认地址栏显示锁形图标;可用 SSL Labs 在线检测配置强度。
- 配置与端口检查
- 语法:nginx -t;服务状态:systemctl status nginx
- 端口连通:ss -tlnp | grep ‘:443’;云服务器安全组与系统防火墙需放行 443/TCP。
- 域名与证书匹配
- 证书必须覆盖实际访问的域名(含 www 或不带 www);通配符 *.example.com 仅匹配一级子域名,不匹配根域名 example.com 与多级子域名。
- 私钥与权限
- 确保 .key 文件存在且权限为 600,否则 Nginx 启动会失败或报错。
- 模块与编译
- 若 nginx -V 未显示 –with-http_ssl_module,需安装带 SSL 模块的 Nginx 或重新编译。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: nginx在centos上ssl安装步骤
本文地址: https://pptw.com/jishu/765414.html
