为 SSL 站点启用 Certificate Transparency 功能
教程No Comment为什么要加 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 支持,随便点一个链接即可看到,这个略麻烦,先不上教程了。