💡一、为什么要开启 HTTPS 和 HTTP/2?

很多站长觉得 HTTPS 只是地址栏前面加个小锁,可有可无。其实这是误解——HTTPS 直接影响三件事:

SEO 排名:Google 早在 2014 年就将 HTTPS 列为排名因素,HTTP 站点在搜索结果中会被标注”不安全”,影响点击率。如果你在做 AdSense 变现,审核时 Google 也会检查这一项。

用户安全:HTTP 传输的数据(包括登录密码、Cookie)完全明文,在公共 WiFi 下极易被截获。HTTPS 全程加密,保护用户隐私。

HTTP/2 加速:HTTP/2 必须基于 HTTPS 才能启用。相比 HTTP/1.1,HTTP/2 支持多路复用(同一连接并行传输多个请求),实测可将页面加载速度提升 20–40%。

结论:开启 HTTPS + HTTP/2 是零成本(证书免费)但收益最高的网站优化操作,没有理由不做。

📄二、申请阿里云免费 SSL 证书

阿里云提供每年 20 张免费 DV 证书,有效期 1 年,到期后可以重新申请续签。

1
进入证书控制台

登录阿里云控制台 → 搜索「SSL 证书」→ 点击「免费证书」→「创建证书」

2
填写域名信息

证书绑定域名填写你的主域名,如 huangdi888.top。验证方式选「自动 DNS 验证」(域名在阿里云解析时最方便),或「手动 DNS 验证」。

3
等待签发 + 下载

提交后通常 5–10 分钟内签发。签发后点击「下载」→ 选择「Nginx」格式,会得到两个文件:*.pem(证书)和 *.key(私钥)。

注意:免费证书只支持单域名(如 huangdi888.top),不包含 www 子域名。如果需要同时支持 www,需要再申请一张证书,或者在 Nginx 中配置 301 跳转。

📤三、上传证书到服务器

将下载的证书文件上传到服务器,建议统一放在 /etc/nginx/ssl/ 目录:

# 在服务器上创建证书目录
mkdir -p /etc/nginx/ssl/huangdi888.top

# 从本地上传(在本地终端执行)
scp huangdi888.top.pem root@你的服务器IP:/etc/nginx/ssl/huangdi888.top/
scp huangdi888.top.key root@你的服务器IP:/etc/nginx/ssl/huangdi888.top/

# 设置权限(私钥文件只允许 root 读取)
chmod 600 /etc/nginx/ssl/huangdi888.top/*.key
chmod 644 /etc/nginx/ssl/huangdi888.top/*.pem

也可以用宝塔面板、FTP 或阿里云控制台的「文件管理」上传,效果相同。


四、修改 Nginx 配置文件

打开 Nginx 主配置文件:

vi /etc/nginx/nginx.conf

将原有的 server 块替换为以下完整配置:

# HTTP → 301 跳转到 HTTPS
server {
listen 80;
listen [::]:80;
server_name huangdi888.top www.huangdi888.top;
return 301 https://huangdi888.top$request_uri;
}

# HTTPS + HTTP/2 主配置
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name huangdi888.top;

# SSL 证书路径
ssl_certificate /etc/nginx/ssl/huangdi888.top/huangdi888.top.pem;
ssl_certificate_key /etc/nginx/ssl/huangdi888.top/huangdi888.top.key;

# SSL 安全配置(推荐)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;

# HSTS(可选,开启后浏览器强制 HTTPS)
add_header Strict-Transport-Security “max-age=31536000” always;

# 网站根目录
root /usr/share/nginx/html/wordpress;
index index.php index.html index.htm;

# 静态文件直接返回(不走 WordPress)
location ~* ^/(ads\.txt|robots\.txt|sitemap\.xml)$ {
root /usr/share/nginx/html/wordpress;
try_files $uri =404;
}

# WordPress 主路由
location / {
root /usr/share/nginx/html/wordpress;
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?$args;
}

# PHP-FPM 处理
location ~ \.php$ {
root /usr/share/nginx/html/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

注意证书路径:huangdi888.top.pemhuangdi888.top.key 替换为你实际下载的文件名,阿里云下载的文件名格式可能略有不同。

五、测试 + 重载 Nginx

修改配置后,先测试语法是否正确,再重载:

# 测试配置语法
nginx -t

# 输出以下内容说明配置正确:
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful

# 重载 Nginx(不中断现有连接)
systemctl reload nginx

千万不要直接 restart:生产环境请用 reload 而不是 restart。reload 会优雅地重载配置,不会中断正在处理的请求。

🔍六、验证 HTTPS 和 HTTP/2

curl 命令快速验证:

# 验证 HTTPS 和 HTTP/2(需要 curl 7.47+ 支持)
curl -I –http2 https://huangdi888.top

# 成功时响应头类似:
HTTP/2 200
server: nginx/1.20.1
strict-transport-security: max-age=31536000

# 验证 HTTP 是否自动跳转 HTTPS
curl -I http://huangdi888.top

# 应该返回 301 跳转:
HTTP/1.1 301 Moved Permanently
Location: https://huangdi888.top/

也可以在浏览器中直接访问 https://huangdi888.top,地址栏显示小锁图标,点开后可以看到「连接是安全的」和「协议:HTTP/2」。

在线检测工具:SSL Labs 检测你的 SSL 配置评级(推荐 A 级以上);用 KeyCDN HTTP/2 Test 验证 HTTP/2 是否已开启。

🚨七、常见报错与解决方案

报错信息 原因 解决方法
unknown directive “http2” Nginx 版本过低(< 1.9.5) 升级 Nginx 到 1.20+:yum install nginx
SSL_CTX_use_certificate: no start line 证书文件路径错误或格式不对 检查 ssl_certificate 路径,确认文件存在且可读
SSL_CTX_use_PrivateKey_file failed 私钥与证书不匹配 重新下载证书,确保 .pem 和 .key 是同一套
no “ssl_certificate” is defined 443 端口 server 块缺少证书配置 确认 ssl_certificatessl_certificate_key 都已配置
ERR_SSL_VERSION_OR_CIPHER_MISMATCH ssl_protocols 配置了过时协议(如 TLSv1.0) 改为 ssl_protocols TLSv1.2 TLSv1.3;
浏览器仍显示 HTTP(无小锁) CDN 或 EdgeOne 未开启 HTTPS 在 EdgeOne 控制台开启「强制 HTTPS」和「HTTP/2」

📝总结

HTTPS 不是可选项,而是现代网站的基础设施。配置一次,受益长期。

完成以上步骤后,你的网站已经具备:全站 HTTPS 加密、HTTP 自动跳转、HTTP/2 多路复用加速、HSTS 安全头。

配合前文的 WordPress 速度优化插件 + EdgeOne CDN,网站的安全性和访问速度都会有质的提升,也更有利于 Google AdSense 审核通过。

如有配置问题,欢迎在评论区留言,附上 nginx -t 的报错信息,我来帮你排查。