搜索

5.8. 使用证书转换

download PDF
证书系统提供证书转换(CT) V1 支持(rfc 6962)的基本版本。它能够从任何可信日志发布带有嵌入式证书时间戳(SCT)的证书,每个部署站点选择包含其 root CA 证书。您还可以将系统配置为支持多个 CT 日志。这个功能至少需要一个可信的 CT 日志。
重要
部署站点负责建立与可信 CT 日志服务器的信任关系。
有关如何配置证书转换的更多信息,请参阅 Red Hat Certificate System Planning, Installation and Deployment Guide 中的 Configuring CertificateTransparency 部分。

5.8.1. 测试证书转换

有关如何测试 CT 设置的示例,以下步骤描述了 Google CT 测试日志的实际测试。更为全面的测试过程涉及设置 TLS 服务器,并测试从指定的 CT 日志中包含其证书。但是,以下可作为在签发证书后检查包含 SCT 扩展的快速测试。
测试过程包括生成和提交证书签名请求(CSR),以便使用 openssl 验证其 SCT 扩展。CS.cfg 文件中的测试配置如下:
ca.certTransparency.mode=enabled
ca.certTransparency.log.1.enable=true
ca.certTransparency.log.1.pubKey=MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEw8i8S7qiGEs9NXv0ZJFh6uuOm<snip>
ca.certTransparency.log.1.url=http://ct.googleapis.com:80/testtube/
ca.certTransparency.log.1.version=1
ca.certTransparency.log.2.enable=true
ca.certTransparency.log.2.pubKey=MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEKATl2B3SAbxyzGOfNRB+AytNTG<snip>
ca.certTransparency.log.2.url=http://ct.googleapis.com:80/logs/crucible/
ca.certTransparency.log.2.version=1
ca.certTransparency.log.3.enable=false
ca.certTransparency.log.3.pubKey=MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiKfWtuoWCPMEzSKySjMjXpo38W<snip>
ca.certTransparency.log.3.url=http://ct.googleapis.com:80/logs/solera2020/
ca.certTransparency.log.3.version=1
ca.certTransparency.log.num=3
  1. 首先,生成一个 CSR,例如:
    # PKCS10Client -d . -p passwd -l 2048 -n "cn=user.test.domain.com,OU=user-TEST,O=TestDomain" -o pkcs10-TLS.req
  2. 接下来,根据 CS.cfg 中的 ca.certTransparency.mode 参数定义的 CT 模式将 CSR 提交到注册配置集:
    • 如果参数设为 enabled,则使用任何注册配置集
    • 如果该参数设为 perProfile,请使用其中一个 CT 配置集:例如 caServerCertWithSCT
  3. 将发布的 b64 证书复制到一个文件中,如 .ct1.pem
  4. 将 pem 转换为二进制:
    #  AtoB ct1.pem ct1.bin
  5. 显示 DER 证书内容:
    #  openssl x509 -noout -text -inform der -in ct1.bin
  6. 观察 SCT 扩展存在,例如:
    								CT Precertificate SCTs:
    								 Signed Certificate Timestamp:
    										 Version   : v1 (0x0)
    										 Log ID    : B0:CC:83:E5:A5:F9:7D:6B:AF:7C:09:CC:28:49:04:87:
    																 2A:C7:E8:8B:13:2C:63:50:B7:C6:FD:26:E1:6C:6C:77
    										 Timestamp : Jun 11 23:07:14.146 2020 GMT
    										 Extensions: none
    										 Signature : ecdsa-with-SHA256
    																 30:44:02:20:6E:E7:DC:D6:6B:A6:43:E3:BB:8E:1D:28:
    																 63:C6:6B:03:43:4E:7A:90:0F:D6:2B:E8:ED:55:1D:5F:
    																 86:0C:5A:CE:02:20:53:EB:75:FA:75:54:9C:9F:D3:7A:
    																 D4:E7:C6:6C:9B:33:2A:75:D8:AB:DE:7D:B9:FA:2B:19:
    																 56:22:BB:EF:19:AD
    								 Signed Certificate Timestamp:
    										 Version   : v1 (0x0)
    										 Log ID    : C3:BF:03:A7:E1:CA:88:41:C6:07:BA:E3:FF:42:70:FC:
    																 A5:EC:45:B1:86:EB:BE:4E:2C:F3:FC:77:86:30:F5:F6
    										 Timestamp : Jun 11 23:07:14.516 2020 GMT
    										 Extensions: none
    										 Signature : ecdsa-with-SHA256
    																 30:44:02:20:4A:C9:4D:EF:64:02:A7:69:FF:34:4E:41:
    																 F4:87:E1:6D:67:B9:07:14:E6:01:47:C2:0A:72:88:7A:
    																 A9:C3:9C:90:02:20:31:26:15:75:60:1E:E2:C0:A3:C2:
    																 ED:CF:22:A0:3B:A4:10:86:D1:C1:A3:7F:68:CC:1A:DD:
    																 6A:5E:10:B2:F1:8F
    
    或者,通过运行 asn1 转储来验证 SCT:
    #  openssl asn1parse -i -inform der -in ct1.bin
    观察十六进制转储,例如:
      740:d=4  hl=4 l= 258 cons:     SEQUENCE
    		744:d=5  hl=2 l=  10 prim:      OBJECT            :CT Precertificate SCTs
    		756:d=5  hl=3 l= 243 prim:      OCTET STRING      [HEX DUMP]:0481F000EE007500B0CC83E5A5F97D6B<snip>
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.