第 5 章 转换证书格式以便和 IdM 一起工作
管理员正确格式化证书以确保与 IdM 命令兼容。常见任务包括将外部证书加载到用户配置文件中,配置智能卡验证,以及导出凭证以进行浏览器兼容性。
5.1. IdM 中的证书格式和编码 复制链接链接已复制到粘贴板!
IdM 身份验证通过将显示的证书与存储的配置集数据进行比较来验证用户身份。虽然配置文件仅存储公共证书,但用户必须在身份验证过程中证明其具有对应的私钥。
- 系统配置
- IdM 配置文件中存储的内容仅是证书,而不是对应的私钥。在身份验证期间,用户还必须显示其拥有相应的私钥。用户通过显示包含证书和私钥的 PKCS #12 文件或两个文件:一个包含证书,另一个包含私钥,来执行此操作。
因此,将证书加载到用户配置文件的进程只接受不包含私钥的证书文件。
同样,当系统管理员为您提供了外部 CA 证书时,他将仅提供公共数据:不带私钥的证书。为智能卡验证配置 IdM 服务器或 IdM 客户端的 ipa-advise 工具期望输入文件包含外部 CA 的证书,而不是私钥。
- 证书编码
-
有两种常见的证书编码:隐私增强型电子邮件(
PEM)和区分的编码规则(DER)。base64格式与PEM格式几乎相同,但其不包含-----BEGIN CERTIFICATE-----/-----END CERTIFICATE-----页眉和页脚。
已使用 DER 编码的证书是一个二进制 X509 数字证书文件。作为二进制文件,证书不可读。DER 文件有时使用 .der 文件扩展名,但带有 .crt 和 .cer 文件扩展名的文件有时也会包含 DER 证书。包含密钥的 DER 文件可以命名为 .key。
使用 PEM Base64 编码的证书是一个人类可读的文件。文件包含前缀为"-----BEGIN …"行的 ASCII (Base64)装ored 数据。PEM 文件有时使用 .pem 文件扩展名,但具有 .crt 和 .cer 文件扩展名的文件有时也包含 PEM 证书。包含密钥的 PEM 文件可以命名为 .key。
不同的 ipa 命令对其接受的证书类型有不同的限制。例如,ipa user-add-cert 命令只接受以 base64 格式编码的证书,但 ipa-server-certinstall 可接受 PEM, DER, PKCS #7, PKCS #8 和 PKCS #12 证书。
| 编码格式 | 人类可读 | 通用文件扩展名 | 接受编码格式的 IdM 命令示例 |
|---|---|---|---|
| PEM/base64 | 是 | .pem, .crt, .cer | ipa user-add-cert, ipa-server-certinstall, … |
| DER | 否 | .der, .crt, .cer | ipa-server-certinstall, … |
IdM 中与证书相关的命令和格式 列出了将来的 ipa 命令和命令接受的证书格式。
- 用户身份验证
- 在使用 Web UI 访问 IdM 时,用户通过将两者都存储在浏览器的数据库中,证明自己拥有与证书对应的私钥。
当使用 CLI 访问 IdM 时,用户通过以下方法之一证明自己拥有与证书对应的私钥:
用户添加了
kinit -X命令的X509_user_identity参数的值,添加了连接到包含证书和密钥的智能卡的智能模块的路径:$ kinit -X X509_user_identity='PKCS11:opensc-pkcs11.so' idm_user用户添加两个文件作为
kinit -X命令的X509_user_identity参数的值,一个包含证书,另一个包含私钥:$ kinit -X X509_user_identity='FILE:`/path/to/cert.pem,/path/to/cert.key`' idm_user- 有用的证书命令
要查看证书数据,如主题和签发者:
$ openssl x509 -noout -text -in ca.pem要比较两个证书在哪行不同:
$ diff cert1.crt cert2.crt要比较哪行中两个证书与两列中显示的输出不同:
$ diff cert1.crt cert2.crt -y