二话不说先上图:
是的,升级完之后得到的就上面几把小绿锁。当然,只是几个小站,如果看官误解为大站的 https 架构升级,抱歉了…
先说 2 则消息提提神:
可见全站 HTTPS 化是大势所趋。就算是小博客、小网站,也不想被拍为「不安全」吧。于是,在 2016 年的尾巴时,折腾了一把。
其实,更应该说「免费」的 Https 证书更合适。因为付费的证书其实很多,而我等小博主,还是用用免费的好了。可能大家都知道,目前最有名的免费证书就是 Let's Encrypt 了(另外一个免费、但有黑历史的我就不说了)
可以使用 Certbot 来自动更新 Let's Encrypt 证书,服务器端我用的是 Ubuntu ,直接照着官网教程就可以生成证书了:https://certbot.eff.org/#ubuntuxenial-nginx
有了证书之后,就是如何应用到网站中,这个就要看大家具体是如何搭建、托管博客的。我是用的 Nginx ,照着这里的步骤就可以了:https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04
有了上面这 2 步,就完成 https 升级本身的在部分事情了。可能你并不知道, https 和 https 也是不同的,主要是安全级别上不一样。具体的,可以到一些测试网站上查查自己的 https 是什么级别,比如 https://www.ssllabs.com/ssltest/analyze.html 我的小站是 A-,虽然可以再加把劲升级到 A+,想想 2/8 原则也就算了。
做了上面的事后,浏览器中并不一定会显示可爱的小绿锁。为什么?因为网站可以还引用了别的 http 资源,比如 js 、 css 、图片、等等。必须全站资源均是 https ,才会在浏览器地址显示小绿锁。
好了,来到迁移最麻烦的部分:图床搬家。因为自己的博客已经有好几年了,搬家 N 次,还由 WordPress 迁移至 Markdown (Hexo 引擎 + Next 主题),其中混杂着又拍云、新浪微博图床、七牛、一般图片、等各种来源的图片,想把这些图片全找出来、重新上传至支持 https 的图床、更新文档中的链接,还是挺绝望的。
不管怎样,已经搞定了,来回顾下我的方案吧。
国内选的是 七牛
另外一个强劲的候选是阿里云 OSS ,因为我总是觉得阿里云 OSS 比七牛快(之前的一些感性经验,并无实测数据,况且这和网络情况严重相关,在你那快、而你的用户不一定快,很难有权威的测试数据)
最后选择七牛最大的原因是:钱,也就是价格。阿里云 OSS 的流量价格大概是七牛的 2 倍,即使买流量包也比七牛稍贵些。具体的,大家可以看下面的官网链接:
需要说明的是,七牛有所谓的免费流量,但这免费流量只适用于 http 流量、不适用于 https 流量,算是个小坑 + 鸡贼吧。
确定图床后,就在七牛上新创建了资源。并没有使用自己域名的 https 链接,因为没有备案(备案好可怕…),直接使用了七牛的 https 二级链接,如 https://xxxx.qnssl.com
国外选的是 Flickr
存储方面, Flickr 有 1T 空间,绝对够用了。
速度方面,之前在 http://www.17ce.com/ 上测试了下,即使是在国内, Flickr 的访问速度尚可、比 Imgur 快;国外应该也没问题。
于是,也就懒得再去用 Amazon S3 之类的专业图床,直接定 Flickr 了,并且链接还是支持 https 的。
这有什么说的呢?
主要是为可能的再次搬家埋伏笔。如果直接使用七牛的二级链接( 如 https://xxx.qnss.com ),那么下次如果需要搬家,就要把之前文档中的链接全部更新,或者使用 Nginx 相关的代理、跳转机制,总是有些麻烦,所以用了一个自己的域名进行跳转。
方法就是,先确定一个固定的图片域名: https://p.ilib.io 然后将其重定向至 https://xxxx.qnss.com 具体的,就是在 Nginx 中配置:
rewrite ^/cn/(.*)$ https://xxx.qnssl.com/$1;
这样,访问如 https://p.ilib.io/cn/abc.jpg 时,会重定向至 https://xxx.qnssl.com/abc.jpg
好处是:
坏处是:
新图床确定了,接下来就是要把已有的 Markdown 文件中的图片迁移至新图床。
这事怎么办呢?
为了这事,我专门做了个 App: iPic Mover,可以选择 Markdown 所在目录,一键迁移 Markdown 中所有图片至新图床,具体看图:
到这里, https 证书配置好了、已有图片也搬家了,已经可以看到可爱的小绿锁了。那么,之后新的图片,该怎么插入到 Markdown 文件中呢?毕竟上面说了,又是七牛、又是 Flickr 的,直接插图还是挺麻烦的。
还好,有了 iPic,可以一键上传图片至图床、生成 Markdown 链接。
晒晒我的图床吧(有些是测试用):
说说博客吧。
折腾这么多,就为了小绿锁,值吗?尤其,现在还有人写博客吗?还需要专门搞个图床搬家的工具吗?
诚然,现在是快消费时代,大家的注意力是涣散的,看个搞笑视频都要快进,更别说读长文,更更别说写长文了,更更更别说为文章配个合适的图。
但,反过来说,大家对信息的渴求是一贯的,在网上搜索信息,都想能最快的得到权威的、组织优良的答案。尤其是程序员这个行当,简直是面向 Google 编程。而很多 Google 给出的答案,都是一些优秀的博客。
所以,我相信博客依然会有其一席之地;而写博客的人,值得被尊重、被关注,值得拥有趁手的工具。
1
Delbert 2016-12-09 00:10:44 +08:00 via Android
表示所有的 https 链接,需要证书的隧道 vpn 通通无法访问。 HTTP 的正常,请问如何破解……
是的,连百度都没法访问了,只能用 Bing …… |
2
quietjosen OP @Delbert 哎,你这问题听起来好牛……
|
3
just1 2016-12-09 00:21:09 +08:00 via Android
ws1.sinaimg.cn 用 https
|
4
Delbert 2016-12-09 00:26:08 +08:00 via Android
@quietjosen 是的,因为需要用代理访问外网。想搜个东西都打不开,什么 askUbuntu ,什么 stackoverflow 。 pip 还好,可以强制 http , openstack 的源无解啊。。。只有官方源, https 的……
|
5
levie 2016-12-09 00:32:55 +08:00
我懒得折腾就国内外都用 V2EX 图床……🙈
|
7
Tink 2016-12-09 00:42:00 +08:00
我是 A
|
8
guofs 2016-12-09 00:49:10 +08:00 via Android
七牛 cdn 部署 https 的话也没法用免费套餐?
|
9
smallaccount 2016-12-09 00:55:18 +08:00 via iPhone
感谢楼主
顺便问下楼主那个上传微博图片的 python 脚本是怎么实现验证的, headers 部分 具体我也说不清楚,您不明白的话我明天用电脑再问一次 |
10
quietjosen OP @just1 恩,貌似最近微博图床的 https 证书升级了。
|
11
quietjosen OP @levie 其实都靠谱的,也许自己的网站倒了, V2EX 的图床也不见得会倒…
|
12
quietjosen OP @guofs 是的,确定、肯定。
|
13
quietjosen OP @smallaccount 并不是用 Python 实现的,而是调用 iPic 传图、基于 Swift 的。
|
14
quietjosen OP @Tink A 记录、还是啥?
|
15
Tink 2016-12-09 01:18:04 +08:00
@quietjosen 打分
|
16
quietjosen OP 说话, V2EX 右侧的广告是非常内容相关的嘛。这个帖子在说 https 及图床的事,右侧就是 Let's Encrypt 及其他相关的链接。
|
17
quietjosen OP @Tink 哦哦,那你比较我厉害 👍
|
18
smallaccount 2016-12-09 01:28:28 +08:00
def get_upload2weibo_cookie():
""" 获取微博 cookie :return: """ headers = { 'Host': 'wb.ilib.io', 'access': '6L+Z5Liq5piv57uZSmFzb27nmoTlm77luornlKjnmoQ=', 'app': 'ipic', 'Accept': '*/*', 'User-Agent': 'iPic/120 CFNetwork/807.0.3 Darwin/16.0.0 (x86_64)', 'Accept-Language': 'en-us', } res = requests.get('http://wb.ilib.io/api/cookie/weibo', headers=headers).json() return res['cookie'] 这个代码是怎么搞的。。。 res = requests.get('http://wb.ilib.io/api/cookie/weibo', headers=headers).json() 这个是什么意思? |
19
quietjosen OP @smallaccount 这个,邮件讨论吧: iToolinbox#gmail.com
|
20
hqfzone 2016-12-09 09:12:48 +08:00
为了统一图片链接,搞跳转,有必要这么拐弯么?一条正则替换的事儿!
|
21
quietjosen OP @hqfzone 我也发现会慢点,先这么着,看一段时间,试过 URL 显式跳转再说。
|
22
guoer 2016-12-09 10:11:29 +08:00 via iPhone
为啥不用 cname
|
23
serve99 2016-12-09 10:17:07 +08:00
@quietjosen 你用的这 https 的 Let's Encrypt ,真会是永久免费的吗?其他好多 https 好像都只是 1 年,然后每年的费用都很高。。。不知你这个是不是真的一直免费。
|
24
quietjosen OP @guoer 可耻的没备案……
|
25
quietjosen OP |
26
guoer 2016-12-09 11:26:44 +08:00 via iPhone
@quietjosen cname 不需要备案吧
|
27
quietjosen OP @guoer 我是说,如果要 cname 到七牛,七牛需要我的域名备案。
|
28
Delbert 2016-12-09 12:28:23 +08:00 via Android
不是端口问题,是证书。只要有证书的都过不去。
|
29
stneng 2016-12-09 12:51:35 +08:00
建议把 css js 也用上 cdn ,可以快一些。
另:个人感觉七牛容易抽风,我前几天抽了,慢得要死,换成又拍了。。。(仅个人感觉) |
31
quietjosen OP @stneng 恩,我也是小站,要求没那么高;坦白讲,还是比较在意「成本」的。
如果真觉得抽,可以弄个监控(比如 360 监控),每 10 分钟测试一次,出问题就短信报警。这样监控一段时间,看是否稳定。 |
32
stneng 2016-12-09 14:50:48 +08:00
@quietjosen 抽了不是指打不开,是很慢而已。。。(能快一点是一点吧。。。)
成本如果是小站的话,用哪儿的都差不多吧。反正流量不大。。。 |
33
quietjosen OP @stneng 确定,成本可以是 10 块 和 20 块 的差别,绝对量并不大。
对我来说,七牛的稳定性,配我的小站,够了。因为木桶原因,最缺的并不是速度、稳定性,而是小站的内容、能给用户带来的价值。当然,我也想让小站飞起… |
34
quietjosen OP @stneng 打错字了,「确实,成本可能是 10 块 和 20 块 的差别」
|
35
stneng 2016-12-09 14:56:30 +08:00
@quietjosen 是啊,感觉您的站量不小吧, iPic 挺有名的。
另:我貌似 A+了。。。(逃 |
36
stneng 2016-12-09 15:03:45 +08:00
@quietjosen 刚看到 WP 的迁移还没解决,给个建议,其实我感觉迁移图床可以有更好的方案。
我目前都是将图片直接上传到站点,然后各种云储存都有镜像迁移的功能,直接镜像迁移就好了,切换根本没有烦恼。。。 |
37
quietjosen OP @stneng iPic 只是在小圈子里有点知名而已…
我这边主要是有历史包袱:在各种图床的旧图。如果一开始就像你说的,所有图都在一个地方,搬起家来确实方便。不过,现在已经在一个地方了,现在就可以按你的方式做了。 |
38
KanVivii 2016-12-20 11:56:09 +08:00
看到说 oss 比七牛快 但是我发现 oss 没有写自带 CDN 呀 可是七牛写了带 CDN
oss 和七牛还有腾讯的 一直很纠结到底用哪个 |
39
quietjosen OP |
40
KanVivii 2016-12-20 21:06:13 +08:00 via iPhone
@quietjosen 因为人在国外所以才觉得七牛貌似快
v2ex 的图库速度也不错的 |