wordpress实现全站HTTPS

来源:互联网 发布:java工程师一般年薪 编辑:程序博客网 时间:2024/05/18 08:13



2016年11月25日更新

https做了两天,现在我把http的访问都301成https,因为之前很多友链或者是外面发的文章的链接,都是http的链接,比较麻烦,因此写了个代码判断如果是http则进行301跳转到https。

用了wordpress的is_ssl()函数进行的判断。

if(!is_ssl()){$nowUrl=home_url(add_query_arg(array()));$url='https'.substr($nowUrl,5);header('HTTP/1.1 301 Moved Permanently');header('Location:'.$url);exit();}

截取替换了http再301,就没啥问题了。

因为如果强制使用https的话,外面http的链接是没办法转https,会显示无法访问。

另外七牛的https下载流量是付费的。。。并没有免费这一说,所以如果继续用https的话,价格问题是需要考虑的(打算不用七牛了,反正我自己主机流量不限制),就是不知道下载速度能不能跟上,到时候看看价格。


qiniu

去看了一下,七牛价格还算比较便宜。(我冲了10块钱,能用很久好像,哈哈哈哈哈)

1


更新分割线


2016年11月23日开始,www.ptbird.cn主站点也就是我的博客启用了https,不管因为啥原因吧反正,目前还是可以使用http协议访问,不过后面会进行301。

1

Https的好处很多我就不一一细说了,今天刚看了篇文章,《为什么https终将取代http?》,链接忘了,阿里云安全 经纶的文章。

折腾了一下午,各种问题,最后才弄好。

主要说一下怎样实现wordpress的https:

一、SSL证书申请

现在还是可以申请免费的证书的,目前我知道可以的是七牛云可以申请一年的(如果你用七牛云,个人面板就有,我的页面底部有优惠链接),还有比较出名的是let's encrypt ,以前炒的比较多的沃通好像不能了?

可以看到我的证书是 let's ecvrypt的,但是不是在上面申请的。

2

我是在 https://www.sslforfree.com/ 上面申请的,申请流程很简单。

1、输入域名准备点击创建,www.example.com 自动会生成一个 example.com

3

2、然后进行域名所有权的验证,可以采用ftp自动上传和手动上传验证文件两种方式。我试了试 ftp貌似不成功,就采用了手动验证。

根据他的要求创建文件夹,上传文件并且验证文件。

4

5

3、点击download就可以查看自己的证书了,给了一个CA,给了private key 和 Certificate 。

7

4、应用到站点就可以了,证书申请就完成了。有时间限制,到时候可以重新申请,如果他还能免费的话,不过国外的免费做的都很好,不想国内某些服务商。

二、主机做的工作

我的博客托管在野草云,网站底部有优惠链接。

用野草云的独立ip虚拟主机来举例,注意,一般来说共享ip主机是没有ssl证书服务的

8

进行ssl证书设置,然后选择粘贴事前准备好的证书和密匙,在选择下面的CA证书,把上面申请的CA粘贴上去保存就行了。

不要用服务器共享或者是自己创建,自签名的证书很多都是不认可的,特别坑。

9

10

设置好了ssl证书,把站点开启支持ssl并且选择private到public就可以了,选择private会有点问题,因为你验证的路径是放在public(申请证书的时候),因此即使拖过去也会造成证书存在问题,我没有解决这个问题。(不需要担心http访问,后面会解决,尽量不要用主机本身去解决)

因为野草云的主机会有private这样的选项,别的主机并没有,主要开启ssl就可以了。

11

三、站点做的工作

1、wordpress的基本设置中站点名称或者可访问名称都换成https的

11

2、.htaccess文件的采用google建议的301来将流量都导向https的域名即可,这样子即使使用http访问,也会定向到https上,流量没有问题,友情链接等也不会有比较麻烦的问题,比较容易。

追加几行就行

RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L] 

其中domain.com是自己的域名

3、将网页中的head请求以及自己写的代码中的图片地址等换成https的链接。

我的站点没有用原来注意的底部来加,是自己改写的,还有页面都是自己用代码写的,图片是上传后用的地址。

所以很多地址都写了http的链接,当时没有考虑这个问题,好在比较少,我就改了十几个而已。

说一下怎样能够知道那些地方存在问题:

当做好的主机ssl之后,进行浏览器访问,如果存在http的请求,浏览器会和你说这个站点的SSL证书是没有问题的,但是私密传输的同时还存在不安全的传输,通过network请求可以看到那些是不安全的,要么去掉,要么改掉就可以。

有些插件是不支持ssl的,不过比较少,我用的几个插件都没有问题。

百度一键分享我当初用的http链接,是有问题行的,让我去掉了,不过我也不用它,用了优享的插件,js脚本留在里面,刚好去掉了。

四、配合七牛云

如果站点用了水煮鱼的七牛云插件,默认链接不能是七牛默认的或者是自定义的,因为都是http,但是麻烦的一点是,七牛自定义的域名是不支持https的,因此只有两种选择,如果你的主机速度快的话,不一定非要用七牛的存储(开个玩笑)。

大家都会推荐使用七牛,七牛的下载速度很快,但是开https后,自定义域名是不能用,就我自己体会,用了七牛的https 的域名后,速度明显慢了,没办法。

15

1、融合CDN那里添加https的域名,同时把空间的默认域名设置成https的域名,另外镜像源设置成https://本站域名。

2、wordpress的插件上的域名也要换成https://七牛的https域名


貌似https的下载流量和http是不一样的,需要单算,而且没有免费的额度,等我使用一段时间看看费用吧,待以后更新。


0 0