
现代网站如果没有部署 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,守住第一道安全防线。