15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用
01.11.2024
1 +1

如何将您的网站切换到 HTTPS:完整分步指南

将您的网站从 HTTP 切换到 HTTPS 不再是可选的——它是任何现代网站的基本要求。HTTPS(超文本传输协议安全)对您的服务器和访问者浏览器之间交换的数据进行加密,保护敏感信息免受拦截、篡改和窃听。除了安全性之外,HTTPS 直接影响您的 Google 搜索排名、浏览器信任指标和用户转化率。如果您的网站仍在使用普通 HTTP,您正在积极地失去流量、信任和收入。

本综合指南将引导您完成迁移网站到 HTTPS 所需的每一步,从获取 SSL 证书到验证最终配置。

为什么切换到 HTTPS 很重要

在深入技术步骤之前,值得理解究竟有什么风险:

  • 安全性:HTTPS 使用 SSL/TLS 加密来保护传输中的数据,包括登录凭据、支付详情和个人信息。
  • SEO 排名信号:Google 自 2014 年以来已确认 HTTPS 是排名因素。没有它的网站在搜索结果中会受到处罚。
  • 浏览器警告:Chrome、Firefox 和 Edge 会主动将 HTTP 网站标记为”不安全”,这会立即赶走访问者。
  • 用户信任:地址栏中的挂锁图标是一个公认的信任信号,直接影响转化率。
  • 数据完整性:HTTPS 防止第三方向您的页面注入广告、恶意软件或跟踪脚本。

第 1 步:了解 HTTPS 的工作原理

HTTPS 是 HTTP 的扩展,它将所有通信包装在 SSL/TLS(安全套接字层/传输层安全)加密层中。当访问者连接到您的网站时,他们的浏览器和您的服务器执行”TLS 握手”以建立加密会话。此过程依赖于由受信任的证书颁发机构 (CA) 颁发的数字 SSL 证书。

SSL 证书有两个用途:

  1. 它启用传输中数据的加密。
  2. 它验证您的服务器身份,向访问者确认他们正在与合法网站通信。

第 2 步:获取 SSL 证书

没有有效的 SSL 证书,您无法启用 HTTPS。根据您的需求和预算,有几种类型和来源可供选择。

免费 SSL 证书

Let’s Encrypt 是世界上使用最广泛的免费证书颁发机构。它颁发域名验证 (DV) 证书,受所有主要浏览器信任,可以每 90 天自动续期一次。大多数托管控制面板本身支持 Let’s Encrypt。

ZeroSSL 是另一个免费 CA,提供简单的基于网络的界面来颁发 DV 证书,是 Let’s Encrypt 的可靠替代品。

付费 SSL 证书

对于需要更高验证级别的企业——例如组织验证 (OV) 或扩展验证 (EV) 证书——付费 SSL 证书是合适的选择。EV 证书在浏览器栏中显示您的组织名称,通常由电子商务网站、金融机构和处理敏感数据的企业使用。

AlexHost 提供一系列SSL 证书,适合个人网站、商业网站和高流量电子商务平台。通过您的托管提供商购买 SSL 证书可以大大简化安装和续期管理。

第 3 步:安装 SSL 证书

安装过程取决于您的托管环境。以下是最常见设置的详细说明。

3.1 通过 cPanel 安装

如果您的托管账户使用 cPanel,SSL 安装非常简单:

  1. 登录 cPanel — 通过 yourdomain.com/cpanel 或您的托管仪表板访问您的托管控制面板。
  2. 导航到 SSL/TLS — 在”安全”类别下找到 SSL/TLS 部分。
  3. 安装证书 — 单击”管理 SSL 网站”,选择您的域,并粘贴您的证书、私钥和 CA 包文件。
  4. 保存并验证 — 保存后,打开您的浏览器并导航到 https://yourdomain.com 以确认出现挂锁。

如果您正在寻找预配置了 cPanel 的托管环境,AlexHost 提供带有 cPanel 的 VPS 计划,可简化 SSL 管理以及完整的服务器控制。

3.2 在 Apache 上安装(手动服务器配置)

如果您直接管理 Linux 服务器,请按照以下步骤在 Apache 上安装 SSL 证书:

步骤 1 — 将证书文件复制到您的服务器:

sudo mkdir -p /etc/ssl/yourdomain
sudo cp your_certificate.crt /etc/ssl/yourdomain/
sudo cp your_private.key /etc/ssl/yourdomain/
sudo cp your_ca_bundle.crt /etc/ssl/yourdomain/

步骤 2 — 编辑您的 Apache 虚拟主机配置:

打开相关配置文件,通常位于 /etc/apache2/sites-available/yourdomain.conf(Debian/Ubuntu)或 /etc/httpd/conf.d/yourdomain.conf(CentOS/RHEL):

sudo nano /etc/apache2/sites-available/yourdomain.conf

步骤 3 — 添加 HTTPS 虚拟主机块:

<VirtualHost *:443>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com
    DocumentRoot /var/www/yourdomain

    SSLEngine on
    SSLCertificateFile      /etc/ssl/yourdomain/your_certificate.crt
    SSLCertificateKeyFile   /etc/ssl/yourdomain/your_private.key
    SSLCertificateChainFile /etc/ssl/yourdomain/your_ca_bundle.crt

    # Recommended security headers
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    Header always set X-Content-Type-Options "nosniff"
    Header always set X-Frame-Options "SAMEORIGIN"
</VirtualHost>

步骤 4 — 启用 SSL 模块和网站,然后重启 Apache:

sudo a2enmod ssl
sudo a2ensite yourdomain.conf
sudo systemctl restart apache2

对于使用 httpd 的 CentOS/RHEL 系统:

sudo systemctl restart httpd

3.3 在 Nginx 上安装(手动服务器配置)

对于基于 Nginx 的服务器,过程略有不同:

步骤 1 — 编辑您的 Nginx 服务器块配置:

sudo nano /etc/nginx/sites-available/yourdomain.conf

步骤 2 — 添加 HTTPS 服务器块:

server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain;
    index index.html index.php;

    ssl_certificate     /etc/ssl/yourdomain/your_certificate.crt;
    ssl_certificate_key /etc/ssl/yourdomain/your_private.key;

    ssl_protocols       TLSv1.2 TLSv1.3;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

步骤 3 — 测试配置并重启 Nginx:

sudo nginx -t
sudo systemctl restart nginx

第 4 步:将 HTTP 流量重定向到 HTTPS

仅安装证书是不够的。您必须配置永久 301 重定向,以便所有 HTTP 请求自动转发到 HTTPS。这确保没有访问者登陆您网站的不安全版本,并整合您的 SEO 链接权益。

4.1 使用 .htaccess 的 HTTP 到 HTTPS 重定向(Apache)

打开网站根目录中的 .htaccess 文件,并在顶部添加以下规则:

RewriteEngine On

# Redirect all HTTP traffic to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Optional: force www to non-www (or vice versa)
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]

保存文件并通过访问 http://yourdomain.com 进行测试——它应该自动重定向到 https://yourdomain.com

4.2 使用 Nginx 的 HTTP 到 HTTPS 重定向

添加一个专用的端口 80 服务器块来发出重定向:

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

重启 Nginx 以应用:

sudo systemctl restart nginx

第 5 步:更新所有内部链接和资源

启用 HTTPS 后,您的网站可能仍会加载混合内容——嵌入在 HTTPS 页面中的 HTTP 资源(图像、脚本、样式表、字体)。混合内容会触发浏览器安全警告,并可能完全破坏您的挂锁指标。

要更新的内容

  • 内部页面链接:将所有 http://yourdomain.com 引用更改为 https://yourdomain.com
  • 图像、CSS 和 JavaScript:确保所有资源 URL 使用 HTTPS 或协议相对路径(//)。
  • 规范标签:更新 HTML 中的 <link rel="canonical"> 标签。
  • 网站地图:使用 HTTPS URL 重新生成您的 XML 网站地图。
  • 数据库 URL(WordPress):使用 WP Migrate DB 插件或运行直接 SQL 查询来更新存储的 URL:
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://yourdomain.com', 'https://yourdomain.com') WHERE option_name = 'siteurl' OR option_name = 'home';

UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');

UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://yourdomain.com', 'https://yourdomain.com');

> 重要:在运行批量 SQL 更新之前,始终备份您的数据库。

第 6 步:更新 Google Search Console 和 Analytics

在 Google 的眼中,您的 HTTPS 网站在技术上与您的 HTTP 网站是不同的属性。采取以下步骤以确保您的 SEO 数据和爬虫设置配置正确:

  1. Google Search Console:将 https://yourdomain.com 添加为新属性。提交您更新的 HTTPS 网站地图。
  2. Google Analytics:在您的属性设置中更新默认 URL 以使用 HTTPS。确保您的跟踪代码安装在所有 HTTPS 页面上。
  3. Bing 网站管理员工具:添加您网站的 HTTPS 版本并重新提交您的网站地图。
  4. 更新外部反向链接:在可能的情况下,联系链接到您的 HTTP URL 的高权限网站,并请求他们更新他们的链接。

第 7 步:测试并验证您的 HTTPS 配置

不要在没有彻底测试的情况下假设您的 HTTPS 设置是正确的。使用以下方法:

浏览器检查

导航到 https://yourdomain.com 并验证:

  • 地址栏中出现挂锁图标。
  • 未显示”不安全”警告。
  • 浏览器开发者控制台(F12 → 控制台)不显示混合内容警告。

SSL Labs SSL 测试

访问 SSL Labs Server Test 并输入您的域。此免费工具为您的 SSL/TLS 配置提供详细的等级(A+ 到 F),突出显示弱密码套件、协议问题和证书链问题。

Why-No-Padlock 工具

使用 Why No Padlock 来识别您网站任何给定页面上的特定混合内容问题。

HTTP Observatory(Mozilla)

Mozilla 的 HTTP Observatory 评估您的安全标头、HSTS 策略和整体 HTTPS 实现质量。

第 8 步:启用 HTTP 严格传输安全 (HSTS)

一旦您确信您的 HTTPS 设置是稳定的,请启用 HSTS。此安全策略指示浏览器始终为您的域使用 HTTPS,即使用户手动输入 http://。它防止 SSL 剥离攻击并为返回访问者消除初始 HTTP 重定向。

将此标头添加到您的服务器配置:

Apache:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

Nginx:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

在确认一切正常工作数周后,考虑将您的域提交到 HSTS 预加载列表以获得最大保护。

为 HTTPS 选择合适的托管

您的托管环境在您实现和维护 HTTPS 的难度中起着至关重要的作用。以下是适合不同需求的 AlexHost 解决方案的快速概述:

  • 共享网络托管:适合小型网站和博客。Let’s Encrypt SSL 通常可通过 cPanel 一键获得。
  • VPS 托管:推荐给需要完全控制其 SSL 配置、服务器软件和安全标头的不断增长的企业。AlexHost VPS 计划为您提供对 Apache 或 Nginx 的根访问权限,可以完全按照本指南中的描述进行配置。
  • 专用服务器:高流量网站、电子商务平台和需要专用资源和高级 SSL/TLS 调整的企业应用的最佳选择。

对于管理多个网站或应用的团队,AlexHost 还提供灵活的VPS 控制面板,可从单个仪表板简化所有域的 SSL 证书管理。

HTTPS 迁移常见错误要避免

错误后果修复
忘记将 HTTP 重定向到 HTTPS重复内容,SEO 权益分散.htaccess 或 Nginx 配置中添加 301 重定向
混合内容(HTTPS 页面上的 HTTP 资源)浏览器安全警告,挂锁破损将所有资源 URL 更新为 HTTPS
未更新 Google Search Console失去爬虫数据和索引见解添加 HTTPS 属性并重新提交网站地图
使用自签名证书所有访问者都会看到浏览器”不安全”警告使用 CA 颁发的证书(Let’s Encrypt 或付费)
让证书过期网站无法访问,SEO 处罚启用自动续期或监控过期日期
未启用 HSTS容易受到 SSL 剥离攻击在确认 HTTPS 稳定后添加 HSTS 标头

常见问题

切换到 HTTPS 会影响我的 SEO 排名吗?

是的——积极影响。Google 使用 HTTPS 作为排名信号。除了直接排名提升外,消除”不安全”浏览器警告会降低跳出率,进一步改善您的 SEO 性能。

切换到 HTTPS 后,我现有的反向链接仍然有效吗?

15%

全场主机优惠15%

测试技能,享折扣

使用代码:

Skills
开始使用