• 为什么要加 CT 呢?一是为了安(zhuang)全(bi),二是 Chrome 取消了对没有 CT 信息的 EV 证书绿条显示(然而我并没有 EV 证书)

    首先确保已经安装 openssl 的最新版本 ( 1.0.2d ),我这里用的是 Arch Linux ,所以就不需要手动编译了。

    下载 nginx 源代码和 nginx-ct 的源代码:

    wget http://nginx.org/download/nginx-1.9.6.tar.gz
    wget -O nginx-ct.zip https://github.com/grahamedgecombe/nginx-ct/archive/master.zip
    tar zxf nginx-1.9.6.tar.gz
    unzip nginx-ct.zip
    

    编译 nginx ( 你也可以带上你自己的参数,加上 ssl 和 ct module 就可以)

    cd nginx-1.9.6/
    ./configure --with-http_v2_module --with-http_ssl_module --add-module=../nginx-ct-master
    

    创建 SCT 的文件夹

    mkdir /etc/ssl/scts/
    

    下载证书提交工具

    wget -O ct-submit.zip https://github.com/grahamedgecombe/ct-submit/archive/master.zip
    unzip ct-submit.zip
    cd ct-submit-master/
    # 请确保已经安装 go 语言
    go build
    

    将证书提交到 Certificate Transparency Log 服务器,假设你的 SSL 证书在 /etc/ssl/server.crt (带证书链的)

    sudo sh -c "./ct-submit-master ct.googleapis.com/aviator \
      </etc/ssl/server.crt \
      >/etc/ssl/scts/aviator.sct"
    sudo sh -c "./ct-submit-master ct.googleapis.com/pilot \
      </etc/ssl/server.crt \
      >/etc/ssl/scts/pilot.sct"
    sudo sh -c "./ct-submit-master ct.googleapis.com/rocketeer \
      </etc/ssl/server.crt \
      >/etc/ssl/scts/rocketeer.sct"
    

    然后在 nginx 配置中添加

    ssl_ct on;
    ssl_ct_static_scts /etc/ssl/scts;
    

    我给我的直播系统加了一个 CT 试试,效果下图:

    中文:

    PS :我还加了 QUIC 支持,随便点一个链接即可看到,这个略麻烦,先不上教程了。