原文地址:https://blog.jing.do/4116

之前提到过用cloudflare可以用他的https证书,但是仅限于client到cloudflare的,从cloudflare到服务器的证书(安装在服务器上)并没有办法制作,还需要我们自己想办法。

但cloudflare提供了人性化的SSL设置,你即便服务器没有HTTPS证书,不是用https协议,也可以让网站成为https。这里简单介绍下他的SSL设置的几个不同层级的含义(之前踩过坑):

打开网易新闻 查看更多图片

如图,他分为四个层级,如果你不想https加密,那直接off就行,flexible的话,既能https访问也能http,也就是80和443端口都可以访问。最难搞懂的是full和full(strict),两者都是全站完全https,前者和后者不同的是,前者如果你的证书过期了,或者证书有问题,他不会出现错误提示,会继续通过80端口访问,而后者则全部加密链接,如果服务器证书出问题了,就会报错。

很明显,如果真要做https的话,肯定是选择后者full(strict),但是问题随之而来,之前我提过用lets encrypt的免费证书(详见:《Let’s Encrypt SSL 证书安装(CentOS+Nginx) 以及评分和自动更新》)。但是他的证书自动更新老出问题(他规则在变),所以很烦。今天无意中发现cloudflare也能做免费证书了,而且还是15年的!!15年!15年!基本无忧无虑了!!!

———————————–以下是教程———————————–

登陆cloudflare然后进入你的域名,然后点击crypto选项,在下面找到original certificate(如图)

点击后,选择一个加密方式,进入下一步。这时候给你了2个密文。复制上面的保存为domain.pem,下面的为domain.key,名字自己定,切忌存好了,丢了没办法找回来。被写入或者盗取了,会导致网站加密被破解。

之后就是服务器配置了,下面是nginx的例子:

去nginx.conf,在server(注意是443端口)下加入以下:

sslon;ssl_certificate/home/https/hellogwu.pem;ssl_certificate_key/home/https/hellogwu.key;

之后重启即可