WordPress HTTPS 简介 #
要拥有 HTTPS,需要在服务器上安装 SSL 证书。
Let’s Encrypt是一个为所有人提供免费 SSL 证书的非营利组织,截至 2020 年 2 月,他们已颁发超过 10 亿个证书。获得证书的最简单方法是使用EFF certbot 工具,他们的网站有完整的说明,用于为几个不同的 Web 服务器和操作系统安装和更新证书。
对于本地开发,您可以使用 OpenSSL 创建一个自签名证书,但这使用有限,因为生成的任何证书都不会被其他人信任,因此只能用于私有服务器。
在 HTTPS 的 Web 服务器级别上,WordPress 不需要专门的额外或特殊设置。如果 Web 服务器配置正确,WordPress 默认准备好使用 HTTPS URL。
HTTP URL 的默认端口是 80 端口,HTTPS 的默认端口是 443 端口。这些端口不能通过任何网络防火墙打开。Apache 包含一个 mod_ssl 模块,需要启用和正确配置。如果使用 certbot,它可以自动配置和创建所需的 VirtualHost 设置。
为 WordPress 实施 HTTPS #
要在 WordPress 上实现 HTTPS 支持,您只需将 WordPress 和站点地址 URL 设置为使用https://
. 您可以使用 HTTP 或 HTTPS 来安装 WordPress,两者都可以工作,您可以稍后切换。
转到设置 > 常规并确保 WordPress 地址 (URL) 和站点地址 (URL) 为 https。如果没有,请在 http 后添加“S”以生成 https 并保存:
站点运行状况工具(工具 > 站点运行状况)将通知您您的网站不使用 HTTPS。
从 5.7 版开始,如果您的服务器上已经设置了 SSL 证书,WordPress 还可以自动切换到 HTTPS。
WordPress HTTPS 最佳实践 #
建议所有生产 WordPress 站点使用 HTTPS。
- 使用信誉良好的网络主机,大多数都提供 HTTPS 服务作为标准。
- 使用 Let’s Encrypt 的 SSL 证书,它们免费且易于使用。
- 从启用 SSL 的 CDN 提供静态内容
您可能需要将您的 HTTP 流量重定向到您的 HTTPS 站点。对于 Apache,您可以通过创建两个 VirtualHost 条目来做到这一点,例如:
<VirtualHost *:80>
ServerName mkaz.blog
Redirect / https://mkaz.blog/
</VirtualHost>
<VirtualHost *:443>
ServerName mkaz.blog
DocumentRoot /home/mkaz/sites/mkaz.blog
<Directory /home/mkaz/sites/mkaz.blog>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mkaz.blog/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mkaz.blog/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/mkaz.blog/fullchain.pem
IncludeOptional /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
WordPress HTTPS 的不良做法 #
- 从 HTTPS 和 HTTP url 服务站点,使用 HTTPS 和重定向。
- 使用混合内容,即。在 HTTPS 页面上通过 HTTP 提供的 CSS、JS 或图像
参考资料和有用的链接 #
- 我为什么要使用 HTTPS
- 让我们加密和Certbot
- Apache 模块 mod_ssl – 官方 Apache 模块文档
- 加密网络(EFF.org)
- HTTPS 作为排名信号(谷歌)
- 保护您的网站的最佳做法(Google)