购买证书基础知识 index文件格式 证书校验和证书吊销 CRL和OCSP使用说明

2019-09-23
admin
原创 2712
摘要:购买证书基础知识 index文件格式 证书校验和证书吊销 CRL和OCSP使用说明

一、购买证书基础知识

1、域名匹配以证书DNS信息为准,有DNS信息则不匹配CN,不存在DNS信息才匹配CN,Chrome只匹配DNS;

2、通配符证书覆盖:*.3scard.com不覆盖3scard.com,如果要覆盖则DNS信息需要增加条目;

3、通配证书可以买一级、二级域名通配证书,二级域名通配证书不能覆盖主域名;

4、证书安全级别:EV型证书 > 赛门铁克保真通配证书 > GeoTrust保真通配证书 > GeoTrust入门通配证书;

5、EV型证书只能是单域名证书,不能是通配符证书;

6、赛门铁克保真通配符证书可以使用Norton Secured Seal;

7、供应商的DN是RFC2253格式的证书主题,P10文件是证书请求文件;

8、Digicert证书昂贵,Sectigo证书便宜,证书好坏在于安全性和兼容性;

9、Digicert合作伙伴:https://www.digicert.com/partners/partner-network/partner-program/partners-directory


根证书有效期:

1、https://wiki.mozilla.org/CA/Root_CA_Lifecycles

2、https://www.chromium.org/Home/chromium-security/root-ca-policy/#3-modern-infrastructures

3、https://knowledge.digicert.com/general-information/digicert-root-and-intermediate-ca-certificate-updates-2023

4、https://www.trustasia.com/view-digicert-root-certificate-upgrade


证书透明度:

1、证书透明度规范:https://www.rfc-editor.org/rfc/rfc6962

2、证书透明度日志:https://certificate.transparency.dev/logs

3、证书透明度解决CA机构恶意签发或错误签发证书的问题;

4、证书透明度包含三部分:证书日志、证书监控、证书审计,其中证书日志是基础;

5、浏览器验证证书的SCT字段,验证该证书是一个公开签发的证书,扮演一个证书审计角色;


自动签发证书:

1、ACME自动管理证书规范:https://www.rfc-editor.org/rfc/rfc8555

2、ACME客户端:https://github.com/acmesh-official/acme.sh

3、ACME客户端:https://github.com/certbot/certbot

4、certbot帮助:https://eff-certbot.readthedocs.io/en/stable/using.html

5、命令帮助:certbot -h

6、打印证书:certbot certificates

7、签发证书:certbot certonly --key-type rsa --manual --preferred-challenges dns -d *.domain.com,domain.com

8、最新签发证书位于/etc/letsencrypt/live,历史所有证书位于/etc/letsencrypt/archive;

9、--dry-run参数用于测试cetonly或renew,并不实际签发证书;


二、index文件格式

第1列:Certificate status flag(V=valid, R=revoked, E=expired);

第2列:Certificate expiration date in YYMMDDHHMMSSZ format;

第3列:Certificate revocation date in YYMMDDHHMMSSZ[,reason] format. Empty if not revoked;
第4列:Certificate serial number in hex;
第5列:Certificate filename or literal string 'unknown';
第6列:Certificate distinguished name;

附注:数据的时间是GMT时间,但双击证书时显示当地时间。


三、证书校验和吊销

证书比较:CN、CA、序列号、模数、指纹,指纹是DER格式证书的SHA1值,证书和私钥是否匹配可以比较模数;

根证书校验:火狐浏览器默认不使用操作系统根证书列表校验服务器证书,除非设置security.enterprise_roots.enabled;

查询外购证书:https://crt.sh,支持查询一级域名相关的所有证书,支持查询指定的证书状态以及信息

吊销外购证书:国内供应商仅仅提交吊销请求到国外机构,实际吊销时间无法确定,至少需要保证OCSP以及CRL看到证书吊销;

浏览器使用吊销信息:IE相对其它浏览器能够更快使用吊销信息,其它浏览器可能不是那么及时;

校验证书是否由CA签发:openssl verify -CAfile ca.crt  cert.crt,校验整个证书链;

吊销证书:openssl ca -revoke cert.crt,仅仅更新index文件中记录状态以及吊销时间;

获取证书状态:openssl ca -status serial,读取index文件中记录的V、R、E状态,并不做时间校验;


四、CRL以及OCSP使用说明

1、生成crl:openssl ca -gencrl -out crl.txt -crldays 365,使用index文件生成吊销列表,包含所有吊销证书的序列号;

2、使用crl:curl使用crlfile参数校验服务端证书有效性,nginx使用ssl_crl配置校验客户端证书有效性;

3、crl文件过期会导致服务端证书或客户端证书有效性校验失败;


1、启动ocsp服务:openssl ocsp -text -CA ca.crt -index index.txt -rsigner ca.crt -rkey ca.key -port 8080 -ndays 1
2、访问ocsp服务:openssl ocsp -host 127.0.0.1:8080 -VAfile ca.crt -issuer ca.crt -serial 0x599546D388830178

3、ocsp校验服务端证书有效性可能导致ocsp服务负载过高,优化方案是使用stapling,即应用服务器缓存证书有效性;

4、企业使用ocsp一般是校验客户端证书有效性,但是这种场景使用crl更有利于应用服务的健壮性,所以推荐使用crl;

5、搭建ocsp服务推荐基于如下开源代码修改:https://github.com/xipki/xipki

发表评论
评论通过审核之后才会显示。