一份实用的分步指南,教你为网站安装 SSL/TLS 证书,并将所有流量强制切换到 HTTPS。
SSL/TLS 证书会对访客浏览器与服务器之间的连接进行加密,将 http:// 升级为 https://。它能保护登录凭据、支付数据和表单提交,也是任何现代网站的基本要求——浏览器会将纯 HTTP 页面标记为"不安全",而搜索引擎则把 HTTPS 视为排名信号。
本教程介绍三种常见的证书安装方式——cPanel AutoSSL、Nginx 上的 Let's Encrypt,以及 Apache 上的 Let's Encrypt——随后将每个请求强制切换到 HTTPS 并启用 HSTS。这些步骤适用于任何符合标准的主机,包括 Skyline Cloud 托管服务。
开始之前
请确认以下几点:
- DNS 已解析到你的服务器。 你域名的 A 记录(如果使用 IPv6,还需 AAAA 记录)必须指向服务器的公网 IP。证书颁发机构会通过 80/443 端口验证域名控制权,因此必须先让解析生效。
- 80 和 443 端口已开放,包括防火墙和安全组。
- 你拥有 Shell 或控制面板访问权限。 cPanel 用户需要控制面板;VPS 和独立服务器用户则需要具备
sudo权限的 SSH 访问。
你可以用以下命令查看域名的解析地址:
dig +short A example.sa
选择证书类型
| 类型 | 验证方式 | 最适合 |
|---|---|---|
| 域名验证型 (DV) | 仅验证域名控制权 | 博客、小型企业、大多数网站 |
| 组织验证型 (OV) | 验证企业身份 | 企业站点 |
| 扩展验证型 (EV) | 完整的法律资质审核 | 银行、大型电商 |
| 通配符证书 | 覆盖 *.example.sa |
多个子域名 |
对于大多数网站而言,来自 Let's Encrypt 的免费 DV 证书已经足够。如果你需要 OV/EV 证书或带有保障性支持的通配符证书,Skyline 可在你的托管方案中提供托管式证书。
方案一 —— 使用 AutoSSL 的 cPanel(最简单)
如果你的网站运行在共享或托管型 cPanel 主机上,AutoSSL 会自动处理一切。
- 登录 cPanel。
- 在 Security(安全) 下,打开 SSL/TLS Status(SSL/TLS 状态)。
- 勾选你希望覆盖的域名,然后点击 Run AutoSSL(运行 AutoSSL)。
- 几分钟内,挂锁图标会变绿,免费的 DV 证书将被安装并设置为自动续期。
要安装你在别处购买的证书,请进入 SSL/TLS → Manage SSL sites(管理 SSL 站点),粘贴证书(CRT)、私钥(KEY)和 CA 证书链,然后点击 Install Certificate(安装证书)。
方案二 —— Nginx 上的 Let's Encrypt(VPS / 云服务器)
在云服务器或 VPS 上,使用 Certbot。在 Ubuntu/Debian 上:
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
用一条命令颁发并自动配置证书:
sudo certbot --nginx -d example.sa -d www.example.sa
Certbot 会验证域名、获取证书、编辑你的 server 块,并提示是否设置 HTTPS 重定向。出现提示时选择 2: Redirect(重定向),即可自动强制启用 HTTPS。
如果你更想手动配置,你的 server 块应引用已颁发的文件:
server {
listen 443 ssl;
server_name example.sa www.example.sa;
ssl_certificate /etc/letsencrypt/live/example.sa/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.sa/privkey.pem;
# Modern TLS only
ssl_protocols TLSv1.2 TLSv1.3;
root /var/www/example.sa;
index index.html index.php;
}
测试并重新加载:
sudo nginx -t && sudo systemctl reload nginx
方案三 —— Apache 上的 Let's Encrypt
安装 Apache 插件:
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.sa -d www.example.sa
Certbot 会创建一个 SSL 虚拟主机,并在你选择重定向时为你添加 HTTPS 规则。生成的 <VirtualHost *:443> 块会引用 /etc/letsencrypt/live/ 下的 SSLCertificateFile 和 SSLCertificateKeyFile。
强制启用 HTTPS
安装证书并不能阻止访客访问不安全的 http:// 版本。你必须通过一个永久(301)重定向,将所有 HTTP 流量重定向到 HTTPS。
Nginx —— 添加一个专门的 80 端口块:
server {
listen 80;
server_name example.sa www.example.sa;
return 301 https://$host$request_uri;
}
Apache —— 在你的 .htaccess 或虚拟主机中:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
cPanel —— 在 Domains → Force HTTPS Redirect(强制 HTTPS 重定向) 下,为每个域名打开该开关。
启用 HSTS
HTTP 严格传输安全(HSTS)会告诉浏览器_只_通过 HTTPS 连接,从而消除那次短暂的不安全首次请求,并防范降级攻击。在确认重定向正常工作后,再添加该响应头。
Nginx(放在 443 server 块内):
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Apache:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
测试期间先从较短的 max-age 开始,之后再调大。只有当每个子域名都支持 HTTPS 后,才添加 includeSubDomains。
验证一切正常
- 访问
http://example.sa—— 它应当重定向到https://。 - 在浏览器中确认挂锁图标和有效的证书。
- 从终端检查重定向和响应头:
curl -sI http://example.sa | grep -i location
curl -sI https://example.sa | grep -i strict-transport
- 运行一次外部扫描(例如 SSL Labs),确认评级为 A、证书链正确且无混合内容。
如果页面仍显示"不安全",请查找混合内容——即被硬编码为 http:// 的资源(图片、脚本、CSS)。将它们更新为 https:// 或协议相对 URL。
续期
Let's Encrypt 证书有效期为 90 天。Certbot 会自动安装一个 systemd 定时器或 cron 任务;用以下命令确认:
sudo certbot renew --dry-run
cPanel AutoSSL 和 Skyline 托管式证书会自行续期,因此无需操心。
数据驻留说明
如果你的受众位于沙特阿拉伯或海湾合作委员会(GCC)地区,将托管与 TLS 终止置于王国境内,可使流量和证书密钥保留在符合 PDPL、NCA 与 SDAIA 要求的基础设施上——并在需要时提供本地阿拉伯语支持。这正是 Skyline 云托管与商务邮件托管背后的理念。关于证书类型、证书链和故障排查的更多内容,请参阅我们的 SSL 证书资源中心。
立即开始
开通一台包含 SSL、数据驻留王国境内的云服务器、虚拟主机或托管式 WordPress 方案。前往 Skyline Cloud 创建你的账户,立即为你的网站加上安全保护。
Comments
0 total · 0 threads