WordPress整站轻松开启HTTPS

近两年来HTTPS取代HTTP已经成为大势所趋。早在2014年google Chromium安全团队提议将所有的HTTP协议网站标注为不安全。现在,Chrome浏览器已经开始执行这一标准了。从 Chrome 56 开始,任何网页,如果有输入密码或者信用卡资料的,却没有使用 HTTPS,将被 Chrome 浏览器标识为不安全;逐步的,任何没有使用 HTTPS 协议的网页chrome浏览器都会被标识为”不安全”,或者 “Not Secure”。

从chrome 56 版本开始,查看网站的SSL证书的方式做了调整,原来的版本可以点击绿色的小锁进入查看页面,新版本的进入方式:按F12 ,打开开发者工具窗口,进入Security选项卡,然后点击View certificate,如下图所示:

HTTP是目前互联网上使用最广泛的传输协议,但是它没有安全加密功能,很容易遭遇劫持,导致用户流量、隐私被窃。HTTPS则会全程加密传输,并有第三方安全机构认证的数字证书。特别在中国,某些ISP服务商会通过宽带上网服务,进行流量劫持,插入广告代码,使用HTTPS后,这些损招就无计可施了。

搜索引擎逐步支持HTTPS网站的收录,HTTPS作为排名的因素之一,在SEO方面越来越重要。google搜索会把HTTPS作为排名的因素之一,虽然当前只是比较小的因素。2015年百度站长平台发布消息,百度对https页面优先收录、优先排名:

1、从相关性的角度,百度搜索引擎认为权值相同的站点,采用https协议的页面更加安全,排名上会优先对待。 2、此次技术升级之后,百度搜索将同一个域名的HTTP版和HTTPS版作为一个站点来处理,优先收录HTTPS页面。

2017年1月1日,苹果将对Apple Store里所有应用启用一项名为ATS的重要安全功能(App Transport Security,应用程序安全传输,简称 ATS),在启用 ATS 之后,它会强制开发者的应用通过 HTTPS(而不是 HTTP)连接网络服务。

我的网站是基于wordpress构建的,整站转换成HTTPS,可以轻松搞定。

SSL证书的选择

1、对于国内用户来说,可以实用与百度云、腾讯云、阿里云合作的赛门铁克签署的证书,一年免费,申请和使用都很方便。

2、自从Let’s Encrypt免费签发证书后,SSL证书的价格就开始平民化了,有不少付费和收费的SSL可以选择。Let’s Encrypt的证书虽然只有90的天,不过自动续期也很方便,对于小站来说,是很不错的选择。Let’s Encrypt的申请安装方法可以参考文章:为你的Blog快速开启https支持。在安装证书的过程中要注意:需要停止web 服务器,比如 Nginx 、Apache ,否则可能报端口占用的错误。

3、因为篡改、伪造等问题,慎重选择沃通、StartCom颁发的证书。 1)2016年9月30日,苹果 Apple于iOS可信根证书列表中宣布:屏蔽其对中级CA WoSign CA Free SSL Certificate G2( CA 沃通免费 SSL 证书 G2)的信任。

2)2016年10月24日,Mozilla在其安全博客公布了对沃通CA和StartCom的最终处理措施:Mozilla 决定不再信任目前包含在 Mozilla 根证书项目中的沃通根证书(Root certificate)和StartCom 根证书今后颁发的服务器证书。即:它不再信任在10月21日之后签发的沃通CA证书,并从 Firefox 51 起移除对4个沃通根证书的信任。

3)2016年10月31日,Google在其安全博客中宣布了:从Chrome 56开始,不再信任WoSign和StartCom在2016年10月21日后颁发的证书。

4.SSL 要用 ECC 证书,即使因为某种原因必须要用 RSA 证书的,那么也要用双证书,就是 ECC + RSA两个证书。在加密算法上,要去掉 RC4。

5.只使用 TLS 协议,包括 TLSv1.0, TLSv1.1,TLSv1.2。禁止 SSL 协议。

6.SSL 证书的签名算法,要使用 SHA-2,不要使用已经被证明有严重缺陷的 SHA-1了。

调整wordpress网站配置

1.修改wordpress后台配置中的地址改为https版本

注意:一定要保证https和http两种方式都能正常访问网站,才能改这个配置,否则可能导致网站无法访问。

通过上面的设置,绝大部分导航中的链接就由wordpress系统自动改为HTTPS版本。 2、对于正文中的内部链接需要手工修改,修改的方法有两种: 1)直接在数据库中更新,更新的sql如下:

update wp_posts set post_content = replace(post_content, ‘//www.watch-life.net/’,‘https://www.watch-life.net/’)

对于数据库不熟悉的站长不推荐这种方法,对数据库错误的更新对网站可能是毁灭性的打击,建议更新前最好备份数据库。 2)利用wordpress提供的api来重写链接。在使用的主题(themes)的目录下的 function.php加入如下代码:

//转换http为https function change_ssl(){ if( is_ssl() ){ function change_ssl_main ($content){ $siteurl = get_option(‘siteurl’); $upload_dir = wp_upload_dir(); $content = str_replace( ‘http:’.strstr($siteurl, ‘//’), strstr($siteurl, ‘//’), $content); $content = str_replace( ‘http:’.strstr($upload_dir[‘baseurl’], ‘//’), strstr($upload_dir[‘baseurl’], ‘//’), $content); return $content; } ob_start(“change_ssl_main”); } } add_filter(‘get_header’, ‘change_ssl’);

这个方法优点是可逆,不会对网站的数据库有什么影响,可以使网站在HTTP和HTTPS之间自由转换,推荐使用这种方法。

调整完内部链接后,检查整个网站的页面,包括首页,栏目页,内容页,sitemap,页面head部分内容,比如:css,js,canonical等,是否都转换成了HTTPS版本。

整站301跳转

整站如果启用HTTPS后运行正常,就可以开始考虑进行整站301跳转了。如果是Apache服务器,在.htaccess文件添加如下代码:

RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.watch-life.net/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^watch-life.net [NC] RewriteRule ^(.*)$ https://www.watch-life.net/$1 [L,R=301]

如果是Nginx服务器,在nginx.conf配置如下代码:

server { listen 80 default_server; server_name www.watch-life.net; return 301 https://$server_name$request_uri; }

以上代码,更换相应的域名即可使用。注意修改或增加配置代码后,需要重启web 服务器。重启后,访问原来HTTP的版本,看是否301跳转为HTTPS的版本。

自此,WordPress整站开启HTTPS开启工作全部完成。后续就是观察各大搜索引擎抓取、收录的情况。

你可能也会喜欢以下文章:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏漏斗社区

业务逻辑漏洞探索之暴力破解

最近斗哥在整理一些业务逻辑漏洞,突然发现好多问题,所以决心和大家一起探讨探讨,今天先从暴力破解开始。

1221
来自专栏拂晓风起

网站安全登录 web应用安全登录 密码 防截获

1383
来自专栏前端儿

HTTPS 概述

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机...

2192
来自专栏腾讯云TStack专栏

Pike版本变慢,不慌,看云计算十年老兵教你一招化解

1503
来自专栏北京马哥教育

openssl创建CA、申请证书及其给web服务颁发证书

一、创建私有的CA 1)查看openssl的配置文件:/etc/pki/tls/openssl.cnf ? 2)创建所需的文件 touch /etc/pki...

3865
来自专栏SEO

HTTPS和SSL真的能让网站安全起来吗?

网站安全越来越重要,不仅仅对用户而言越来越重要,对于SEO来说,网站安全这个排名因素也越来越重要。

1192
来自专栏FreeBuf

一封伪造邮件引发的“探索”(涉及钓鱼邮件、SPF和DKIM等)

0x00. 引言 我用swaks 发送一封以我们公司CTO为显示发件人(腾讯企业邮箱)的伪造邮件给我的一个同事,邮件的内容就是让这位同事去CTO的办公司一趟,没...

8496
来自专栏FreeBuf

BlackHat议题解析:Windows程序的数字签名校验“漏洞”

* 本文原创作者:维一零,本文属FreeBuf原创奖励计划,未经许可禁止转载 在今年的黑帽大会上,国外的一个安全研究员展示了如何通过Windows的数字签名by...

2857
来自专栏java一日一条

30分钟让网站支持HTTPS

我不是安全专家也不是搞服务器的,所以这对我而言也是一种有趣的经历,而记录这个过程可以让其他任何人也能很快地做到这些。包括一些暂时的停顿时间,我总共只花了20-3...

1484
来自专栏蓝天

加密通讯协议SSL编程周立发

编译程序用下列命令: gcc -Wall ssl-client.c -o client gcc -Wall ssl-server.c -o server 运行...

1083

扫码关注云+社区