首页主机资讯nginx在centos上ssl安装步骤

nginx在centos上ssl安装步骤

时间2025-12-06 01:53:03发布访客分类主机资讯浏览306
导读:在 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
nginx ssl centos安全设置指南 centos sqlplus版本选择指南

游客 回复需填写必要信息