HTTPS配置全流程指南:证书申请、部署与自动续期实战
本内容发表于:2025-06-19 13:48:22
浏览量
1018

HTTPS全流程实战.png

现代网站如果没有部署 HTTPS,除了浏览器会高亮警告“此网站不安全”,你在搜索引擎排名上也会吃亏。而更严重的是——数据传输可能被中间人拦截、篡改,用户输入的账户密码、订单信息全都暴露无遗。

部署 HTTPS,其实远远不止“买个证书”那么简单。我们要考虑:

  • 如何选择合适的证书?

  • 怎么正确部署在服务器上?

  • 如何实现自动续期而不是“每年手动上传”?

  • 多个站点如何共用或隔离证书?

  • HTTP 跳转 HTTPS 的配置是否合规?

这篇文章将带你从 0 到生产部署,彻底掌握 HTTPS 配置全流程。


一、HTTPS 与 SSL/TLS 是什么关系?

很多人混淆 HTTPS 和 SSL,其实:

  • HTTPS(HyperText Transfer Protocol Secure) 是 HTTP 的安全版本;

  • 它基于 TLS(Transport Layer Security)协议 建立连接;

  • TLS 的前身是 SSL,但现在SSL 已废弃,TLS是主流标准

HTTPS 本质上是:

HTTP + TLS加密层 + 数字证书验证机制

通过服务器返回的证书,客户端可以验证“你是谁”,并通过非对称加密完成后续数据传输加密。


二、证书类型选择:免费 vs 商用

1. 免费证书(Let’s Encrypt / ZeroSSL)

  • 优点:0元、自动化支持广、可信链完整;

  • 缺点:有效期 90 天(需要配置自动续期);无企业认证

适用:个人博客、普通企业官网、小型Web服务。

2. 商用证书(Symantec, DigiCert, GlobalSign)

  • 类型

    • DV(Domain Validation)域名型:简单验证域名所有权

    • OV(Organization Validation)企业型:需验证营业执照等资料

    • EV(Extended Validation)增强验证:浏览器地址栏展示公司名称

适用:金融、电商、对数据保护有合规要求的企业服务。


三、实战部署:以 Nginx 为例

1. 获取证书(以 Let’s Encrypt + acme.sh 为例)

安装 acme.sh(推荐使用无依赖纯 bash 工具):

bash
curl https://get.acme.sh | shsource ~/.bashrc

申请证书(使用 Web 验证):

bash
acme.sh --issue -d yourdomain.com -w /var/www/html

安装证书至指定目录:

bash
acme.sh --install-cert -d yourdomain.com \
--key-file       /etc/nginx/ssl/yourdomain.key  \
--fullchain-file /etc/nginx/ssl/yourdomain.crt  \
--reloadcmd     "systemctl reload nginx"

注:acme.sh 会自动添加续期计划任务。


2. Nginx 配置 HTTPS

nginx
server {    listen 443 ssl http2;    server_name yourdomain.com;    ssl_certificate     /etc/nginx/ssl/yourdomain.crt;    ssl_certificate_key /etc/nginx/ssl/yourdomain.key;    ssl_protocols TLSv1.2 TLSv1.3;    ssl_ciphers HIGH:!aNULL:!MD5;    root /var/www/html;    # 强制跳转到 HTTPS
    add_header Strict-Transport-Security "max-age=31536000" always;
}

3. HTTP → HTTPS 重定向配置

nginx
server {    listen 80;    server_name yourdomain.com;    return 301 https://$host$request_uri;
}

四、自动续期机制详解

Let’s Encrypt 证书有效期仅为 90 天,因此自动续期是关键

检查计划任务是否存在:

bash
crontab -l

默认会包含如下计划任务(由 acme.sh 自动添加):

bash
0 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh"

你还可以手动测试:

bash
acme.sh --renew -d yourdomain.com --force

特殊情况说明:

  • 若你更换主机、域名解析指向发生改变,需重新申请;

  • 若使用 DNS 方式验证(如 DNS API),适合无 Web Server 的场景。


五、常见问题解答(FAQ)

Q1:HTTPS 会影响网站加载速度吗?

  • 启用 TLS 1.3 后影响微乎其微,反而能提升安全性和SEO排名。

  • 配合 HTTP/2 甚至能提高加载效率。

Q2:同一台服务器能否配置多个 HTTPS 网站?

可以。只需在 server_name 区分不同域名,并分别加载证书文件即可。

Q3:如果我忘了续期怎么办?

浏览器会直接报错提示“证书过期”,用户会直接流失。务必确保自动续期有效。


六、HTTPS 是网站运维的“基本功”

现在的互联网早已不是“HTTP能用就行”的时代。部署 HTTPS,不仅是安全的要求,更是用户体验与信任的象征。

对运维人员而言,部署、续期、配置、排错……每一步都可能出问题。但只要你掌握了正确流程和工具,它就像一套“安全盔甲”,默默守护你的网站与用户。

你的网站,还在裸奔吗?现在就开始全站启用 HTTPS,守住第一道安全防线。