Nginx 开启 Certificate Transparency 保障证书安全-问答-阿里云开发者社区-阿里云

开发者社区> 妙正灰> 正文

Nginx 开启 Certificate Transparency 保障证书安全

2016-12-28 13:11:52 5861 1
前言

像米饭这样一个域名签过一坨证书的人恐怕不在少数吧(如下图),然而没有好好保管 crt、key 文件也有的吧,如果被坏人拿去干坏事,就算是有 HTTPS 还是依旧会瞎~
举个栗子:



解释


Certificate Transparency 是什么? 贼烦,一看真的是文言文的赶脚,所以我们这里换个思路看看。
首先,我们的证书是从 CA 那里签出来的,不过呢,

CA 也会有坏银(在 XXX 没有申请的情况下,某 CA 内部不当给 XXX 签了证书)
证书下载方式不完善(证书下载链接应该下载一次后就不能下载,或者说只有十分钟的时效性,但是没有做到这点)
CA 被骗了(拿伪造的信息来骗取证书)
拥有高级权限的软件(病毒)自签证书后,然后让系统信任。

为了规避这些问题,IETF 在2013年启动了一个叫做 Certificate Transparency的开源项目,把所有已知的合法证书做了一个白名单,浏览器在验证证书的时候同时也会去查看这个证书是不是在白名单里面。 如果不在的话,就会告知用户这个证书找不到记录,于是,有可能是假或者是被盗的证书。
总之呢,CT 就是为了规避上面的几个“不过”,并让你的 HTTPS 更加安全的一个措施。

表现


首先呢,截止发文也就只有基于 Chrome 内核的浏览器支持 Certificate Transparency。所以有没有设置 CT 也就只有哪些浏览器才会有表现。
一、非 EV 证书的 HTTPS,会提供有这么点提示,并不容易察觉,而且这个截图的版本是 Chrome 49 的,到了 50 以上的版本没有设置 CT 的不会有一点提示,就和没有一样:


二、EV 证书,在 Chrome 浏览器上就会没有高大上的绿色框框了,因为不会有购买了 EV 证书还不开 CT 的网站,所以我举不出栗子。 不过当贵司大价钱买了 EV 证书,结果没出现绿色框框,而你被领导问到的时候,就会尴尬了。 嗯,总之就是会带来一个尴尬加成。


三、非 EV 证书,设置好了 HTTPS 的样子:
因为米饭粑设置了双证书,所以在两个证书也都设置了 CT。
非 ECC 证书效果:


ECC 证书效果:



设置


其实呢,CT 目前有三种设置方法: X.509v3 扩展、TLS 扩展 和通 过OCSP Stapling 目前,TLS 扩展是最好方案了,并且任何 CA 签的证书都适用。

Nginx-CT


Nginx-CT 模块可以让 Nginx 支持通过 TLS 扩展的方式实现 CT。
注: Nginx-CT 只兼容 BoringSSL 和 OpenSSL 1.0.2 +,不支持 LibreSSL。 推荐 OpenSSL。
#下载 Nginx-CT
wget https://github.com/grahamedgecombe/nginx-ct/archive/v1.3.2.tar.gz
tar xzf v1.3.2.tar.gz

#下载 OpenSSL 1.1.0
https://www.openssl.org/source/openssl-1.1.0c.tar.gz
tar xzf openssl-1.1.0c.tar.gz

#编译 Nginx,根据原本的参数修改:

./configure --add-module=/path/to/nginx-ct --with-openssl=/path/to/openssl


获取 SCT


利用 ct-submit 工具(需要 go 支持),它会讲证书提交给谷歌和几大证书厂商的 CT LOG 服务器,并获得一个受 Nginx-ct 和 mod_ssl_ct 支持的 sct 格式。


#安装 golang
yum install golang -y  // CentOS、RHEL
apt-get install golang -y // Ubuntu、Debian

wget https://github.com/grahamedgecombe/ct-submit/archive/v1.1.2.zip
unzip v1.1.2.zip
cd ct-submit-1.1.2
go build


编译成功后会获得一个 ct-submit-1.1.2 文件,我们就开始提交:
我这里是 ECC + RSA 双证书,所以我要申请两个,每个证书我都申请了两个:
./ct-submit-1.1.2 ct.googleapis.com/rocketeer <mf8.biz.ecc.crt >rocketeer-1.sct
./ct-submit-1.1.2 ct.googleapis.com/icarus <mf8.biz.ecc.crt >icarus-1.sct
./ct-submit-1.1.2 ct1.digicert-ct.com/log <www.mf8.biz.crt >digicert-2.sct
./ct-submit-1.1.2 ct.googleapis.com/pilot <www.mf8.biz.crt >pilot-2.sct



注1: ct.googleapis.com 国内服务器无法访问,需要到境外服务器提交获取到 sct 文件再传到国内。
注2: 更多 CT LOG 服务器可以在 这里 看到。

配置


然后就只要在虚拟机的 conf 配置文件中加入:
ssl_ct on; #开启 nginx-ct
ssl_ct_static_scts /path/to/scts/; #这里填写 sct 文件的目录路径,而不是文件路径。


取消 提交回答
全部回答(1)
  • 鬼才神兵
    2017-01-04 07:17:15
    您的帖子很精彩!希望很快能再分享您的下一帖!
    0 0
相关问答

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 223025浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157097浏览量 回答数 145

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 643170浏览量 回答数 18

33

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 277553浏览量 回答数 33

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256885浏览量 回答数 38

294

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 431630浏览量 回答数 294

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302619浏览量 回答数 249

40

回答

阿里云ecs从购买到环境搭建和建站!!(phpstudy一件包)

梦丫头 2014-07-29 20:51:49 162119浏览量 回答数 40

24

回答

【精品问答】python技术1000问(1)

问问小秘 2019-11-15 13:25:00 471472浏览量 回答数 24

13

回答

游戏云精彩帖汇总

nono20011908 2014-08-22 11:00:12 203653浏览量 回答数 13
+关注
妙正灰
浙江卓见云解决方案工程师,负责为企业规划上云迁移方案和云上架构设计,在网站建设开发和云计算领域有多年经验,专注于Linux平台的系统维护以及应用部署。致力于以场景化的方式让云计算,用更加通俗易懂的方式让更多人体验云计算,让云端的计算更质朴的落地。
107
文章
5038
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载