万科网络科技

16年专业网站建设优化

15850859861

当前位置: 网站首页 > 新闻资讯 > 常见问题 >

常见问题

部署SSL证书的具体流程是什么?

泰州网络公司 浏览次数:0 发布时间:2025-12-05

  部署 SSL 证书的核心流程可概括为:准备环境 → 申请 / 下载证书 → 服务器配置 → 验证生效 → 优化加固,全程需结合服务器类型(如 Nginx、Apache)和证书格式(PEM、PFX 等)调整,以下是通用且详细的分步指南,新手也能落地:

一、部署前准备(3 件事必做,避免踩坑)

在开始配置前,先确认基础环境,减少后续返工:
  1. 确认服务器信息
    • 明确服务器类型:Nginx、Apache、IIS、Tomcat、Caddy 等(核心差异在配置文件格式);
    • 确认服务器操作系统:Linux(CentOS、Ubuntu)、Windows Server;
    • 开放 443 端口(HTTPS 默认端口):在服务器防火墙(如阿里云安全组、UFW、iptables)中放行 443 端口(TCP 协议),否则用户无法通过 HTTPS 访问。
  2. 确认域名解析生效
    • 确保域名已解析到服务器 IP(A 记录 / AAAA 记录),且解析已生效(可通过ping 域名或站长工具验证);
    • 若申请的是泛域名证书,需确保所有子域名解析指向同一服务器(或通过负载均衡统一处理)。
  3. 备份原有配置
    • 备份服务器的 HTTP 配置文件(如 Nginx 的nginx.conf、Apache 的httpd.conf),避免配置错误导致网站无法访问。

二、核心步骤:5 步完成部署(通用流程)

步骤 1:申请并下载对应格式的 SSL 证书

先通过 CA 机构(如 Let's Encrypt、沃通、DigiCert)申请证书,申请通过后,下载与服务器匹配的证书文件:
若下载的是 PFX 格式(如 IIS 场景),需牢记解压时的 “私钥密码”;若需转换格式(如 PFX 转 PEM),可使用在线工具(如 SSL Converter)或 OpenSSL 命令。

步骤 2:上传证书文件到服务器(安全存放)

将下载的证书文件(.crt、.key、.ca-bundle 等)上传到服务器的非公开目录(避免被外网访问),推荐路径:
上传方式:

步骤 3:配置服务器(核心步骤,分类型详解)

不同服务器的配置方式不同,以下是最常用的 4 种场景,直接套用配置模板即可:
场景 3.1:Nginx 服务器(常用,Linux 系统)
  1. 编辑 Nginx 配置文件(默认路径:/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/你的域名.conf);
  2. 新增 / 修改 HTTPS 的 server 块(替换以下[]中的内容):
nginx
server {
    listen 443 ssl;  # 监听443端口(HTTPS默认)
    server_name www.xxx.com xxx.com;  # 你的域名(含主域名+www域名)

    # 证书文件路径(替换为你上传的实际路径)
    ssl_certificate /etc/ssl/www.xxx.com/fullchain.pem;  # 服务器证书+中间证书
    ssl_certificate_key /etc/ssl/www.xxx.com/privkey.key;  # 私钥文件

    # 加密配置(优化安全性和兼容性)
    ssl_protocols TLSv1.2 TLSv1.3;  # 禁用TLS1.0/1.1(不安全)
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;  # 强加密套件
    ssl_prefer_server_ciphers on;  # 优先使用服务器端加密套件
    ssl_session_timeout 1d;  # SSL会话超时时间
    ssl_session_cache shared:SSL:10m;  # 会话缓存(提升性能)

    # 网站根目录(与HTTP配置一致)
    root /var/www/xxx.com;
    index index.html index.php;

    # 其他配置(如PHP解析、静态资源缓存等,复用原有HTTP配置)
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

# 可选:HTTP自动跳转HTTPS(推荐配置,避免用户访问HTTP未加密版本)
server {
    listen 80;
    server_name www.xxx.com xxx.com;
    return 301 https://$host$request_uri;  # 永久重定向到HTTPS
}
  1. 保存配置文件,检查配置是否有误:nginx -t(显示test is successful则正确);
  2. 重启 Nginx 生效:systemctl restart nginx(CentOS)或 service nginx restart(Ubuntu)。
场景 3.2:Apache 服务器(Linux 系统)
  1. 启用 Apache 的 SSL 模块(若未启用):
    • CentOS:yum install mod_ssl → systemctl restart httpd
    • Ubuntu:a2enmod ssl → systemctl restart apache2
  2. 编辑 Apache 配置文件(默认路径:/etc/httpd/conf.d/ssl.conf 或 /etc/apache2/sites-available/你的域名-ssl.conf);
  3. 配置 HTTPS 站点(替换[]内容):
apache
<VirtualHost *:443>
    ServerName www.xxx.com
    ServerAlias xxx.com  # 额外域名(如主域名)
    DocumentRoot /var/www/xxx.com  # 网站根目录

    # 证书配置
    SSLEngine on
    SSLCertificateFile /etc/ssl/www.xxx.com/www.xxx.com.crt  # 服务器证书
    SSLCertificateKeyFile /etc/ssl/www.xxx.com/www.xxx.com.key  # 私钥
    SSLCertificateChainFile /etc/ssl/www.xxx.com/ca-bundle.crt  # 中间证书(部分CA需要)

    # 加密优化
    SSLProtocol TLSv1.2 TLSv1.3
    SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
    SSLHonorCipherOrder on
</VirtualHost>

# HTTP自动跳转HTTPS
<VirtualHost *:80>
    ServerName www.xxx.com
    ServerAlias xxx.com
    Redirect permanent / https://www.xxx.com/  # 永久重定向
</VirtualHost>
  1. 启用站点(Ubuntu):a2ensite 你的域名-ssl.conf
  2. 检查配置:httpd -t(CentOS)或 apache2ctl configtest(Ubuntu);
  3. 重启 Apache:systemctl restart httpd(CentOS)或 systemctl restart apache2(Ubuntu)。
场景 3.3:IIS 服务器(Windows Server)
  1. 打开 “IIS 管理器”→ 选中你的服务器名称 → 双击 “服务器证书”;
  2. 右侧 “导入”→ 选择下载的 PFX 证书文件 → 输入证书密码(申请时设置的)→ 选择 “个人” 存储位置 → 确定;
  3. 选中你要配置的网站(如 “默认网站”)→ 右侧 “绑定”→ 点击 “添加”;
  4. 绑定配置:
    • 类型:选择 “https”;
    • 端口:默认 443(无需修改);
    • 主机名:输入你的域名(如www.xxx.com);
    • SSL 证书:选择刚才导入的证书 → 确定;
  5. 配置 HTTP 跳转 HTTPS(可选):
    • 选中网站 → 双击 “URL 重写”→ 右侧 “添加规则”→ 选择 “空白规则”;
    • 名称:填写 “HTTP to HTTPS”;
    • 匹配 URL:模式→“.*”,勾选 “使用通配符”;
    • 条件:添加→条件输入 “{HTTPS}”,模式 “^OFF$”;
    • 操作:操作类型 “重定向”,重定向 URL“https://{HTTP_HOST}/{R:1}”,勾选 “永久重定向”→ 应用;
  6. 重启 IIS:右侧 “停止”→“启动”,或命令行执行 iisreset
场景 3.4:Tomcat 服务器(Java 环境)
  1. 转换证书格式(Tomcat 需 JKS 格式,若下载的是 PEM,用 OpenSSL 转换):
    bash
    运行
    # 命令格式(需安装OpenSSL):
    openssl pkcs12 -export -in 你的域名.crt -inkey 你的域名.key -out 你的域名.jks -name www.xxx.com -CAfile ca-bundle.crt -caname root
    
    • 执行后输入 JKS 密钥库密码(自定义,需牢记);
  2. 将生成的你的域名.jks文件上传到 Tomcat 的conf目录(如D:\Tomcat\conf\);
  3. 编辑 Tomcat 配置文件server.xml(路径:conf/server.xml);
  4. 找到并修改<Connector>节点(默认 8443 端口,建议改为 443):
    xml
    <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/你的域名.jks"  # JKS文件路径
                         type="RSA"
                         certificateKeystorePassword="你的JKS密码"  # 步骤1设置的密码
                         certificateKeystoreType="JKS"/>
        </SSLHostConfig>
    </Connector>
    
  5. 配置 HTTP 跳转 HTTPS(可选):
    • 编辑web.xml(路径:conf/web.xml),在<welcome-file-list>后添加:
      xml
      <security-constraint>
          <web-resource-collection>
              <web-resource-name>HTTPS</web-resource-name>
              <url-pattern>/*</url-pattern>
          </web-resource-collection>
          <user-data-constraint>
              <transport-guarantee>CONFIDENTIAL</transport-guarantee>
          </user-data-constraint>
      </security-constraint>
      
  6. 重启 Tomcat:停止 Tomcat 服务 → 重新启动。

步骤 4:验证部署是否成功

配置完成后,通过 3 种方式验证,确保生效:
  1. 浏览器访问验证
    • 输入https://你的域名(如https://www.xxx.com),地址栏显示 “小锁图标”(EV 证书显示绿色锁 + 企业名称);
    • 点击小锁→“证书”,查看证书信息(域名、有效期、颁发机构)是否正确。
  2. 在线工具验证
    • 用 SSL Labs(https://www.ssllabs.com/ssltest/)输入域名,测试评级(建议 A + 或 A,若评级低,需优化加密配置);
    • 用站长工具(如爱站、5118)的 “HTTPS 检测”,检查是否存在证书过期、配置错误等问题。
  3. 命令行验证(Linux)
    • 执行 curl -v https://你的域名,输出中显示SSL connection using TLSv1.2/TLSv1.3,且无 “证书不受信任” 错误。

步骤 5:优化与加固(可选但推荐)

  1. 启用 HTTP/2:Nginx、Apache、Tomcat 均支持 HTTP/2,能提升网站加载速度,配置方式:
    • Nginx:在listen 443 ssl;后添加http2;(如listen 443 ssl http2;);
    • Apache:启用mod_http2模块(a2enmod http2),在 VirtualHost 中添加Protocols h2 http/1.1
  2. 配置 HSTS(强制 HTTPS):让浏览器永久使用 HTTPS 访问,避免被劫持到 HTTP,配置方式:
    • Nginx:在 HTTPS 的 server 块中添加 add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    • Apache:在 VirtualHost 中添加 Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
  3. 定期备份证书:将证书文件和私钥备份到安全位置,避免丢失。
  4. 设置证书续期提醒:免费证书(如 Let's Encrypt)有效期 90 天,商业证书 1-2 年,需在到期前 1 个月申请续期,避免证书过期导致网站标红 “不安全”。

三、常见问题排查(部署失败必看)

  1. 浏览器提示 “证书不受信任”
    • 原因:未配置中间证书(fullchain.pem),或证书格式错误;
    • 解决:使用fullchain.pem(包含中间证书)替换单独的服务器证书,重新配置。
  2. 无法访问 HTTPS(超时)
    • 原因:443 端口未开放,或服务器防火墙拦截;
    • 解决:在云服务器安全组、系统防火墙中放行 443 端口(TCP 协议)。
  3. 配置后网站打不开
    • 原因:配置文件语法错误(如 Nginx 的括号不匹配、路径错误);
    • 解决:用nginx -t(Nginx)、httpd -t(Apache)检查配置,修复错误后重启服务。
  4. 私钥权限错误(Linux)
    • 原因:私钥文件(.key)权限过高(如 777),Nginx/Apache 拒绝读取;
    • 解决:设置权限为 600(仅所有者可读):chmod 600 /etc/ssl/你的域名/privkey.key

四、总结

部署 SSL 证书的核心逻辑是:匹配服务器格式→上传证书→配置 HTTPS 监听→验证生效,关键在于两点:一是证书文件路径和权限正确,二是加密配置符合安全标准(禁用旧协议、使用强加密套件)。
如果是新手,优先选择 Nginx 服务器(配置简单、文档丰富),或使用云服务商的 “SSL 证书一键部署” 功能(如阿里云、腾讯云,无需手动编辑配置文件,直接选择服务器自动部署),效率更高。
18

上一篇:如何查看百度站长平台的历史调整与生效情况?

下一篇:没有了

在线客服
服务热线

服务热线

  15850859861

微信咨询
返回顶部