国内域名不备案怎么玩

Let’s Encrypt

众所周知国内域名不备案是不能随意解析的,放到国外又会影响服务响应速度,使用云服务又增加了开发成本,备案呢又很麻烦,在上海还需要居住证。但是国内备案只检测 http 的80端口,而 https 的443端口幸免于难。更是响应 Google I/O 2016 的号召,我们都应该使用 https来加密我们的网站,这样也能避免 ISP 劫持,最重要的是被运营商劫持。

有很多家免费的 https 证书提供商,如StartSSL,有效期一年。国内有沃通,有效期也是一年。但是申请和维护都比较麻烦,毕竟是免费的。

但是我们也有其他的选择,Let’s Encrypt,有效期三个月,但是可以使用脚本或者安装 certbot 自动续期。

HTTPS

HTTPS 建立一条安全的网络通道,有效的防止被网络窃听以及中间人攻击

证书类型

HTTPS 证书分三类,浏览器会在地址栏给予不同证书不一样的展现。

  1. DV 域名验证证书
  2. OV 组织机构验证证书
  3. EV 增强的组织机构验证证书

每类证书在审核和验证方面要求严格程度不同,一般自签证书可以利用 Openssl生成公钥私钥,但是浏览器会有安全警告,12306就是自签证书。所以我们要使用 Let‘s Encrypt来创建证书。

配置我们的 SSL 证书

lua-resty-auto-ssl

在 Ubuntu 上配置很容易,最好的方案是用 lua,nginx 对 lua的支持极好性能优越,很多负载均衡脚本都是由 lua 编写的。推荐使用 OpenResty 部署服务器,也可以使用我的lua-jit 版本的 nginx-lua 来部署,lua-jit 安装 lua-resty-auto-ssl 不是很方便,lua-jit 通过 LuaRocks 安装需要进行一些配置。

Let’s Encrypt Without Sudo

这是提供的 Python 方案。具体可以看letsencrypt-nosudo,文档中已经详细的指出使用方法和 Openssl 的自签方案。

cretbot

自动化创建证书,自动续期。

其他

如果不懂 server 配置文件怎么写的可以使用 ssl-config-generator,是 Mozilla 搞出来的配置文件生成工具,着实方便。