![[AIX、Linux 和 Windows]](ngalw.gif)
AIX, Linux, and Windows 系统上的证书验证和信任策略设计
IBM® MQ 根据基本和标准两种策略验证 TLS 证书。 标准策略检查符合 RFC 5280。
这些主题中的信息适用于以下系统:
- IBM MQ for AIX® or Linux® 系统
- IBM MQ for Windows 系统
此部分中使用了以下术语:
- 证书策略
- 确定要理解和处理证书中的哪些字段。
- OCSP 策略
- 确定可理解和处理 OCSP 请求或响应中的哪些字段。
- CRL 策略
- 确定可理解和处理证书撤销列表中的哪些字段。
- 路径验证策略
- 确定证书、OCSP 和 CRL 策略类型如何相互影响,以确定证书链(从信任点"RootCA"到终端条目 "EE")是否有效。
基本路径验证策略和标准路径验证策略分别进行了描述,因为这反映了 IBM MQ for UNIX, Linux 和 Windows 系统中的实现。 但是,标准 OCSP 和 CRL 策略与基本策略相同,标准证书策略是基本策略的扩展版本,因此这些策略未单独描述。
缺省情况下, IBM MQ 首先应用基本策略验证。 如果基本策略验证失败,那么 IBM MQ 将应用标准策略 (RFC 5280) 验证。 如果基本策略验证成功,那么不会应用标准策略验证。 因此,验证失败意味着基本策略和标准策略验证都失败,可能是由于不同的原因。 验证成功意味着基本策略验证成功,因此未应用标准策略验证,或者基本策略验证失败,标准策略验证成功。
实施严格的 RFC 5280 合规性
要强制实施严格的 RFC 5280 合规性,请使用证书验证策略配置设置。 此设置允许您禁用基本策略,以便仅使用标准 RFC 5280 策略。 有关证书验证策略配置设置的更多信息,请参阅 IBM MQ中的证书验证策略。
以下示例是基本证书验证策略接受但 RFC 5280 兼容标准策略拒绝的数字证书。 为了使数字证书链可信,整个链必须满足配置的验证策略。
要查看数字证书的完整详细信息,请使用 runmqakm 命令:
runmqakm -cert -details -db key.kdb -pw password -label certificate_label
在 runmqakm 输出中启用了信任状态的证书不一定能够在 TLS 握手中使用。 启用信任状态意味着如果证书也满足证书验证策略的规则,那么该证书有资格用作 CA 证书来验证其他证书。 有关符合 RFC 5280 的标准证书验证策略的更多信息,请参阅标准路径验证策略。- 示例证书 1-密钥用法不正确
- 此示例显示了密钥使用字段不符合 CA 证书的标准证书验证策略规则的证书。 证书作为 CA 证书有效的要求之一是,密钥使用字段必须表明允许使用keyCertSign标志签署其他证书。 没有此标志的证书不能用作 CA 证书。
在此示例中,密钥用法字段仅包含 encipherOnly 标志。 keyCertSign标记未设置,因此该证书不允许签署其他证书。 因此,它不能用作 CA 证书。Label : root Key Size : 1024 Version : X509 V3 Serial : 54cb6f740c7ee410 Issuer : CN=Example Root CA,O=Example,C=GB Subject : CN=Example Root CA,O=Example,C=GB Not Before : 9 February 2012 17:19:00 GMT Not After : 1 October 2019 18:19:00 GMT+01:00 Public Key 30 81 9F 30 0D 06 09 2A 86 48 86 F7 0D 01 01 01 05 00 03 81 8D 00 30 81 89 02 81 81 00 CC 44 D9 25 6D 26 1C 9D B9 FF DE B8 AC 44 AB E3 64 80 44 AF BE E0 00 93 53 92 33 F8 7E BD D7 71 ED 21 52 24 75 DF D6 EE 3C 54 97 84 29 EA 93 4C 4A D1 19 5D C1 A0 82 F5 74 E1 AD D9 87 10 D5 6A 2B 6F 90 04 0F 7E 6E 85 6D 32 99 33 9C D9 BB 57 86 DE 68 23 C9 F2 6D 53 E3 F5 FF D1 0B E7 23 19 3A F6 70 6B C8 C7 EB DB 78 8E 8C 9E 55 58 66 B6 31 DB 40 5F 6A 97 AB 12 D7 E2 3E 2E 79 EE 78 7B 02 03 01 00 01 Public Key Type : RSA (1.2.840.113549.1.1.1) Fingerprint : SHA1 : EE 68 D4 4F 73 4F F4 21 DE 1A 01 11 5E DE B1 B8 DF 40 AA D8 Fingerprint : MD5 : 50 B5 E9 B2 D7 35 05 6A DC 6D 4B 1E B2 F2 DF A4 Fingerprint : SHA256 : B4 D7 6E C4 47 26 24 C7 4F 41 C3 83 03 6F 5C C7 07 11 61 E0 0E 36 59 1F 1C E6 69 39 2D 18 05 D2 Extensions basicConstraints ca = true pathLen = 1239876 critical key usage: encipherOnly Signature Algorithm : SHA256WithRSASignature (1.2.840.113549.1.1.11) Value 9D AE 54 A9 9D 68 01 68 15 B5 53 9F 96 C9 5B D1 52 40 DB CB 33 AF FD B9 26 D5 90 3F 1E 0B FC A6 D9 8C 04 90 EB AA FD A8 7A 3C AB 60 5F 20 4F 0D 7B 73 41 27 6A 2B BF 8C 99 91 B6 49 96 82 6A 24 0A E8 B9 A5 AF 69 3D 2C A3 3C C8 12 39 FB 56 58 4E 2A FE AC AC 10 89 53 B1 8F 0F C0 50 BF 5E 00 91 64 B4 A1 4C 9A 4E D5 1F 38 7C AD 32 A9 8A E1 91 16 2C 6D 1E 4A CA 99 8D CC 22 CD BF 90 49 FC Trust Status : Enabled - 示例证书 2-缺少基本约束扩展
- 此示例显示缺少基本约束扩展的证书。 基本约束扩展用于指示是否允许此证书用作 CA。 它还用于指示可由证书签名的任何证书链的最大长度。 标准证书验证策略要求证书具有设置了 isCA 标志的基本约束扩展,以便用作 CA。
在此示例中,证书完全缺少基本约束字段。 因此,此证书不能用作 CA 证书。Label : root Key Size : 1024 Version : X509 V3 Serial : 1c7dfea316570bf6 Issuer : CN=Second Example Root CA,O=Example,C=GB Subject : CN=Second Example Root CA,O=Example,C=GB Not Before : 9 February 2012 17:18:22 GMT Not After : 1 October 2019 18:18:22 GMT+01:00 Public Key 30 81 9F 30 0D 06 09 2A 86 48 86 F7 0D 01 01 01 05 00 03 81 8D 00 30 81 89 02 81 81 00 B2 70 49 7C AE 1B A7 B3 06 49 6C 99 19 BC A8 77 BE 86 33 21 6B C9 26 CC A6 28 52 9F 7B CF 03 A4 37 A7 4D 6B 06 AA ED 7D 58 E3 70 F3 F7 C1 06 DA E8 27 C6 3D 1B AC FA EF AA 59 7A 9A AB C1 14 4E AF 13 14 4B 71 CA 8D FE C3 F5 2F E8 AC AD EF 21 80 6D 12 89 4A 2A 84 AA 9D E0 4F C1 93 B1 3E 16 E8 3C 75 39 2A 74 1E 90 CC B1 C3 2B 1D 55 26 76 D2 65 C1 06 47 2A BF 79 96 42 76 A9 6E 65 88 5F 02 03 01 00 01 Public Key Type : RSA (1.2.840.113549.1.1.1) Fingerprint : SHA1 : 33 9F A1 81 43 F1 43 95 48 A5 66 B4 CD 98 E8 15 9C B3 CA 90 Fingerprint : MD5 : 91 EA D9 C0 2C 05 5B E2 CD 0B F6 DD 8A 11 44 23 Fingerprint : SHA256 : 62 46 35 0B 0E A1 A7 2A D5 74 70 0F AA 47 9A 9C 6B 80 1B F1 0B 4C 81 05 85 0E 91 11 A4 21 D2 34 Extensions key usage: digitalSignature, keyCertSign Signature Algorithm : SHA256WithRSASignature (1.2.840.113549.1.1.11) Value 79 34 BA 5B 6F DC 06 A3 99 24 4E 8A 2B 27 05 47 0D 4D BE 6A 77 D1 1D 5F 54 82 9D CC F6 92 D4 9A AB 4D B6 DD 6E AD 86 C3 6A A3 32 E3 B3 ED E0 62 4A EB 51 08 AC BE 49 9E 9C D7 FE AE C8 9D 17 16 68 31 6B F4 BA 74 1E 4F 5F 05 48 9F E7 46 BA DC 17 7A 60 88 F8 5B DB 3C 51 D4 98 97 28 82 CF 36 47 DA D2 0F 47 FF 70 EA 45 3A 49 66 E6 E2 F9 67 2C C8 3E 24 A2 3B EC 76 1F D6 31 2B BD A9 B5 08 Trust Status : Enabled - 示例证书 3-具有旧版本 X.509 的中间 CA
- 此示例显示处于 X.509 版本 1 的中间 CA 证书。 标准证书验证策略要求所有中间 CA 证书必须至少为 X.509 版本 3。 根 CA 证书不受此需求的限制,因为仍存在一些常用的版本 1 根 CA 证书。 但是,这一豁免今后可能会发生变化。
在此示例中,版本字段为 X.509 V1。 此证书是 X.509 版本 1 证书,因此不能用作中间 CA。Label : intermediate Key Size : 1024 Version : X509 V1 Serial : 02 Issuer : CN=Test Root CA,O=Example,C=GB Subject : CN=Test Intermediate CA,O=Example,C=GB Not Before : 10 February 2012 17:33:45 GMT Not After : 11 April 2018 18:33:45 GMT+01:00 Public Key 30 81 9F 30 0D 06 09 2A 86 48 86 F7 0D 01 01 01 05 00 03 81 8D 00 30 81 89 02 81 81 00 C0 07 C2 D0 9F 84 DB 7C 20 8F 51 F9 C2 1A 3F CF E2 D7 F2 F1 56 F2 A4 8F 8F 06 B7 3B 01 31 DE 7C CC 03 63 AA D3 2F 1C 50 15 E3 56 80 40 7D FF 75 87 D3 F3 00 89 9A 26 F5 57 05 FA 4F ED 3B DD 93 FA F2 DF 38 26 D4 3A 92 51 CC F3 70 27 42 7A 9F AD 51 45 67 B7 AE 11 AD 4F 2D AB D2 CF 73 E6 F0 45 92 F0 47 16 66 7E 01 C7 76 A3 7B EC D2 76 3F E5 15 EC D7 72 2C FE 14 F5 78 83 AA C4 20 AB F7 02 03 01 00 01 Public Key Type : RSA (1.2.840.113549.1.1.1) Fingerprint : SHA1 : DE BB 75 4B 14 E1 44 B9 B6 44 33 97 49 D0 82 6D 81 F2 2F DE Fingerprint : MD5 : 72 49 44 42 E2 E6 89 F1 CC 37 C9 F6 B5 8F F3 AE Fingerprint : SHA256 : 83 A4 52 AF 49 34 F1 DC 49 E6 95 AE 93 67 80 13 C2 64 D9 26 22 A0 E8 0A 5A A9 71 EC E8 33 E1 D1 Signature Algorithm : SHA256WithRSASignature (1.2.840.113549.1.1.11) Value 40 4A 09 94 A0 18 07 5E 96 D7 A6 52 6B 8D 20 50 E8 91 F7 7E EA 76 B4 08 DF 76 66 1F FA FF 91 79 2E E0 66 8B 9F 40 FA 14 13 79 81 DB 31 A5 55 1D 44 67 41 F4 EA 1A F7 83 4F 21 F4 43 78 4E F8 5E 6F B2 B8 3A F7 6B B4 F5 C6 F8 EB 4C BF 62 6F 3E C7 20 EC 53 B3 40 51 36 C1 0A 4E 73 ED 74 D1 93 02 C5 FB 61 F7 87 64 A5 94 06 7D 25 7C E3 73 DD 08 D4 07 D0 A4 3F 77 88 12 59 DB A4 DB 68 8F C1 Trust Status : Enabled