背景
据权威部门统计,全球约有上百个证书颁发机构(CA)有权发放HTTPS证书,以证明您网站的身份。但是证书颁发机构由于某些原因,往往会被浏览器列入”黑名单” ,并被公开宣布将不再信任其签发的HTTPS证书。所以当你访问到部署了这些证书的网站时,部分浏览器比如谷歌、火狐会提示”HTTPS证书不受信任”,浏览器地址栏的HTTPS也会被划上一条小红线,网页不能访问,如下图所示。
CAA(Certification Authority Authorization,即证书颁发机构授权)是一项防止HTTPS证书错误签发的安全措施,于2013年1月通过互联网工程任务组(IETF)批准,被列为RFC6844。2017年3月,CA浏览器论坛投票通过187号提案,要求CA机构从2017年9月8日起执行CAA强制性检查。
CAA标准使得网站所有者,仅授权指定CA机构为自己的域名颁发证书,以防止HTTPS证书错误签发。以博主的主域名gxnas.com为例,域名注册商和解析均为阿里云,目前阿里云云解析DNS作为国内最大的权威DNS服务商,已率先支持CAA记录类型。
CAA记录格式
CAA记录的格式为:[flag] [tag] [value]
,是由一个标志字节的[flag]
和一个被称为属性的[tag]
-[value]
(标签-值)对组成。您可以将多个CAA字段添加到域名的DNS记录中。
字段 | 说明 |
---|---|
flag | 0-255之间的无符号整数,用于标志认证机构。通常情况下填0,表示如果颁发证书机构无法识别本条信息,就忽略。 |
tag | 支持 issue、issuewild 和 iodef。
|
value | CA的域名或用于违规通知的电子邮箱。 |
具体操作方法
如果你的域名也是阿里云,可以按照以下方式来配置CAA记录:
1、在浏览器打开这个网址:https://sslmate.com/caa ,在“1、Enter Your Domain Name”这里输入主域名(一级域名),点“Auto-GeneratePolicy”生成你主域名的CAA记录值;
2、在“3、Incident Reporting(Optional)”这里输入你的邮箱,如果有发现域名证书被劫持的,系统会自动发送违规通知到这个邮箱;
3、向下拉,来到“4、Publish Your CAA Policy”这里,会显示你的域名CAA记录值,我这里有3个;
4、登录阿里云后台,进入域名解析/解析设置,添加记录,记录类型选择“CAA—CA证书颁发机构授权校验”,主机记录写“@”(引号不写,@用英文半角格式),记录值用上面显示的这3个,每次复制一个记录值添加后确定,按照顺序添加三次(不要复制相同的内容);
5、添加3次后会显示这样(注:这里不用照搬我的。请根据你的实际情况选择。比如需要添加泛域名的保护,可以写0 issuewild "你的域名SSL证书颁发机构");
6、在浏览器打开网址:https://www.ssllabs.com/ssltest/index.html ,输入你正在使用SSL证书并且未到期的域名(可以是主域名或者是二级域名,如果是域名未使用SSL证书,则验证无效),验证 CAA 记录是否生效。DNS CAA显示YES表示CAA生效中。
目前,海外Route53、dyn、Cloudflare等主要DNS服务商均已支持CAA记录,但是国内的普及程度还不够。随着社会网络安全意识的整体提高,CAA记录作为加强网站安全的措施之一,将会成为金融机构、电子政务、公共服务等行业的一项网络安全基准要求,也会有越来越多的DNS服务商的支持CAA记录,CAA普及只是时间问题。