免费 HTTPS 证书-从 StartSSL 到 Let's Encrypt

目录 互联网

在国内严峻的流量劫持情况下,为了避免网站、APP 中出现莫名其妙的广告,同时也为了保护用户隐私,从 HTTP 切换到 HTTPS 是很多网站不得不做出的选择。

随着技术的进步,还有一个同样重要的原因,那就是 HTTP/2 也建立在 SSL/TLS 基础之上,想充分利用 HTTP/2 的新特性也要求网站切换到 HTTPS。

从去年开始,我的个人站点就切换到了 HTTPS + HTTP/2 协议,通过 Nginx 实现协议切换是非常容易的事情,仅要求一个合法的证书即可完成配置。当时我选择的证书服务商是 StartCom,可以为有限个域名签发免费的有效期一年的 HTTPS 证书。虽然 HTTPS 增加了计算上的开销,但对于个人网站的流量来说,这点儿开销可以忽略不计了。

原来一直都好好的,前几天访问网站的时候,Chrome 忽然提示网站证书不可信任。想起来在公司听到的 Chrome 撤销对 Symantec 签发证书的信任,感觉不好!上网一搜,果然 Chrome 也撤销了对 StartCom 根证书和签发证书的信任:《Distrusting WoSign and StartCom Certificates》,而且快半年了。只是因为我的 Chrome 一直没升级到 56 版本以上,所以没有觉察到。于是没办法,只能寻找新的证书提供商了。

本来都打算花钱买个证书了,后来发现一个很值得信赖的证书提供商:Let’s Encrypt 。虽然是一个免费的服务,但后面有一堆知名组织和公司的支持:ISRG, Mozilla, Cisco, Chrome, Facebook 等,看起来比以前的一些免费证书服务靠谱多了,非常值得一用。

它家的证书有个局限,就是有效期只有 3 个月,然后就需要续签。这也很容易理解,一般免费都是有其它代价的。但是按照它给的安装步骤走下来,才发现它有着一套非常合理的设计。首先在你的服务器上安装一个软件 certbot,用参数指定你的网站根目录。这个证书机器人就会自动在你根目录下添加一个验证文件。远程证书服务器会访问你的网站,通过访问这个验证文件是否在你给定的域名路径下,自动验证你是否拥有域名的所有权。验证成功以后,证书就会自动签发到你服务器上的配置目录,只需要修改 Nginx 的配置,使用签发下来的证书就好了。

那每 3 个月的续签怎么办? certbot 本身就支持更新证书的参数,而且可以配置服务器自动重启的 hook,只需要把更新指令添加到服务器的 crontab,每 3 个月或者每 1 个月运行一次即可,完全不需要人工操作。

最后感叹一下,Apple 和 Google 真是互联网安全的业界良心!虽然看似专制霸道,但有多少 APP、网站是因为 Apple 的 App Transport Security 的要求才全站切 HTTPS 的?有多少证书提供商是因为 Chrome 时不时就吊销证书的行为才控制住了干坏事的冲动?真心希望中国的互联网大公司在此类事情上,不仅独善其身,也能兼济天下。

海口到三亚自驾

目录 生活

出于某种难以启齿但众所周知的原因 (≖ ‿ ≖)✧,这次清明小长假去三亚休假,选择了从北京先飞海口,然后再自驾到三亚。

那为什么选择自驾而不是高铁呢?两个原因:一是带着一个两岁多的娃,换乘高铁+出租太麻烦;二是酒店订了海棠湾的万丽,本身离三亚市区较远,交通不便。

最早开始考虑的是 Avis 租车,他家近期好像在扩张中国的业务,租车价格比较便宜。但无论是网页还是 APP,都无法走到下单那一步,感觉是正好遇到了系统故障。后来考虑到 Avis 海口站离机场有段距离,还需要叫他们来接送站比较麻烦,于是转而投奔在海口美兰机场停车场设点的一嗨租车。车型上犹豫了半天,由于行李是一个 28 寸大箱子 + 一个孩子伞车,最后通过“后备箱大小”一项成功排除其它经济车型,选定斯柯达明锐 1.6L。

一嗨租车租下了美兰机场露天停车场的一片区域,停那两辆商务面包车作为门店开展业务。整体来说租还车还算方便,只是航班刚到达时去租车人比较多,需要排一会儿队。给我的明锐是 17 年 1 月份的新车,左后方被蹭了一片,其余地方完好。明锐的掀背式后备箱真挺大的,容量完全不输帕萨特、天籁这样的 B 级车,放进去箱子和伞车还空了一大片。

如果想看海,可以不走高速,走海边的公路。但我考虑到旅途疲惫和休假的旅行目的,还是走东线高速直奔海棠湾而去。从海口到海棠湾,驾车时间大约是两个半小时,中间加了一次油。路边服务区还是挺多的,中国石化和中国石油加油站都有,可以使用这两家全国通用的加油卡。因为高速免费,所以油费略贵,92 号汽油比北京贵一块二左右。跟高速收费比算下来还是划算的。

接下来说说明锐这辆车,这个车在体验上还真是一个优缺点十分鲜明的车。只说它有的配置,没有的配置比如定速巡航等就不谈了。后备箱很大,前面已经说过了。四个车窗都是一键升降,在这个级别的合资车上不算普遍。布艺座椅配色太丑,看起来档次感低。

油表非线性,这个让人很费解。加满油以后,开 200 公里,油表下降不到 1/8,按照这个算法,满箱可以开 1600 公里,这绝对是不可能的事情。后来的 300 公里,油表就下降了 3/8 多。整个行程跑了大约 500 公里,油表下降 1/2 略多,这样计算整箱油大概是 900 多公里。我本来以为这是租车公司的特殊调校,目的是让你摸不清油耗,还车时卡不准油量。后来搜了下论坛,发现还真不是个别现象,很多人声称自己表显能跑一千三四百公里。

虽然油表不准,但是这车还是很省油的,满箱一千公里不好说,八百应该能轻松跑到。不过这种省油调教也不是没有代价,就是变速箱提速反应太慢。比如在高速上八九十公里的时候,如果想提速到 120,必须非常缓慢地踩油门提速,稍微深踩一点儿,变速箱就会由 6 挡降到 5 挡,发动机转速立马飙升到近 4000 转,整车噪音难以忍受。从网上搜到的百公里加速数据,明锐 1.6L 版本是最慢的,也是符合体验。

我在大部分情况下,对机械设备的表现都期望是线性的。油门线性、加速线性、油耗线性,这样在操作时才会更流畅。所以明锐 1.6L 这样的车,实在是欣赏不来。

最后吐槽一下海南的高速。限速摄像头和探头实在是太多了,连匝道都有限速 40 的摄像头,而且在相似的路况下,限速居然还从 120 到 100 变来变去,再加上一个没有定速巡航的车,开起来真的是挺累。

合并 Debian 补丁的 OpenBSD netcat Linux 源码

目录 应用软件, 开源

前几天在我的 CentOS 4.3 古董服务器上想使用 ProxyCommand 给 ssh 配置 socks 代理,ssh -o "ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p" 选项在我的 OSX/Ubuntu 上挺好用的,但是在 CentOS 4.3 却发现 " invalid option -- x",没有这个参数。

本来我以为是 netcat 没有更新到最新,特地去下载了 GNU netcat 最新的源码包,结果源码编译后还是没有 “-x” 这个参数。后来仔细看 man page,看起来根本就不是一个版本。调研了下,才发现 netcat 居然有好多的版本:

你们城里人可真会玩儿啊!

因为 OSX/Ubuntu 都是用的 OpenBSD netcat(移植或修改版),所以 -x/X 参数是存在的,能够实现代理功能;但是 CentOS 4 因为版本太老,用的还是 GNU netcat。本来找个移植后的源码包,直接编译安装就好了呗。但可是,我 Google 了半天 (打脸,谁让你还用 CentOS 4),还是没找到能直接编译的 OpenBSD netcat Linux 源码包,最后还是在 Arch 的某个网站上找到使用 Debian 源码进行 Patch 然后再编译的脚本,才搞明白怎么能在 Linux 编出来 OpenBSD netcat 。

可能是出于易维护的考虑吧,Debian 把源码分成了两个包,一个是原始的 OpenBSD netcat,一个是 Debian 的 N 个 Patch 源码。编译时要先把 Patch 打到 OpenBSD 源码上,然后再编译。可这样的过程不是维护者很难理解,为什么不多发布个打完 Patch 的源码呢?而且这种补丁包形式也没个官方网站介绍下,真的好难懂。

为了避免其它古董 Linux 发行版用户再有我这样的苦恼,我把 patch 后的代码上传到了 Github: https://github.com/solrex/netcat ,有需要的朋友可以自取。