WordPress 开启全站 HTTPS

  • 内容
  • 评论
  • 相关

百度和google等搜索引擎大佬公开声明:搜索引擎欢迎https安全加密的网站,度娘并给予HTTPS安全通讯加密的网站更好的权重。国外个人免费的SSL证书用StartSSL,它给个人用户免费提供一类证书,国内用的比较多的是wosign的证书。留学归国人才创办的企业。也提供个人用户一类证书免费。使用全局 SSL 加密,有效避免用户在访问网页的时候造成隐私的泄露。

HTTPS 使用443端口来验证你的链接,通过 SSL、TLS 这种底层的加密技术来保证你的连接是安全的,由于 SSL 这种协议在 IP 层面上,所以建立安全握手的时候甚至还没有发生 HTTP 数据的交换,这就导致了 SSL 这个本身针对域名进行签名的证书却需求你有一个独立的 IP 地址。不过,现实很快就无情地证明——IPv4地址终究会被用尽。虚拟主机应运而生,这时候我们很庆幸的还能有一个独立的域名和空间,但 IP 地址却是共享的。

打破误区:虚拟主机无法使用SSL证书。

事实上虚拟主机确实很难支持 SSL,一不小心就会导致同 IP 下的其他域名提示证书不正确。不过,现如今的主流浏览器都支持了一个新的协议:SNI。使用 SNI,将允许 Web 服务器在同一 IP 上单独为每一个域名提供证书。目前主流的服务器比如 Nginx、Apache 等都已经支持,Safari、Chrome、Firefox 等知名浏览器都已经支持,要点名的是 IE 系列貌似12345678都不太好使。

好了,接下来要全站开启HTTPS,首先你需要一个独立IP的主机或者使用SNI(Server Name Indication)扩展可以支持安装域名证书的虚拟主机并且支持伪静态。

再次,选择免费SSL证书提供商(个人站仅实现加密功能,身份认证无需实现,所以用免费证书就Ok。电商网站需要高级类证书),我选择的是国产的WOSIGN。国外的StartSSL没有尝试(以后会尝试一下,写一个真实使用状况发上来)。WOSIGN比较符合国人口味,注册也比较流畅。点击》》免费证书注册地址

注册流程不再多说。so easy

证书部署流程wosign也有详细的说明,真的是适合国人……比如我这样的半桶水站长。

下面重点说一下部署完SSL证书后续要做的工作。这是重点。

因为我们是部署了HTTPS站点,你发现http也可以访问你的站,我的站http访问会报错。这样会影响使用状况。所以我们要全站HTTPS。无论怎样访问域名。都要跳转到https://打头。购买虚拟主机的话建议还是apache的并且支持伪静态,这样只要通过修改.htaccess文件添加301跳转规则就可以实现了。将所有的 HTTP 流量使用301重定向到 HTTPS 上。我的规则贴上来方便Ctrl+C党:

RewriteEngine On
RewriteCond %{HTTPS} !on [NC]
RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC]
RewriteCond %{HTTP_USER_AGENT} !(baiduspider|soso|bing|sogou|yahoo|sohu-search|yodao|robozilla|msnbot|msie|feedburner) [NC]
RewriteCond %{HTTP_HOST} www.xx.com
RewriteRule (.*) https://www.xx.com%{REQUEST_URI} [R=301,NC,L]

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

 

别傻到复制后不修改成自己的域名哦!为什么把一部分规则放到# BEGIN WordPress的外面.

 

开启登录和后台的强制SSL

虽然有了整站的重定向,但我们不妨还是将 WordPress 本身自带的功能打开,以期更完善的兼容体验——毕竟是301重定向。还是找到你网站根目录里边,这次要修改的文件是 config.php,直接在这个文件的末尾另起一行,追加两行代码:

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

修改“设置”→“常规”里的“站点地址”和“WordPress 地址”为 https://www.xx.com;

https既然是安全加密,站外引入内容会被浏览器报不安全和报错。所以一些元素了。还有一些插件了,使用起来要考量一下是否适合自己的站点。毕竟严谨一些还是好的。为了给你捧场的观众网友。

评论

0条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注