C.2. 映射器插件模块
本节论述了为证书管理器提供的映射程序插件模块。这些模块配置证书管理器以启用和配置特定的映射程序实例。
可用的映射程序插件模块包括:
C.2.1. LdapCaSimpleMap
LdapCaSimpleMap
插件模块将证书管理器配置为在 LDAP 目录中为 CA 创建条目,然后将 CA 的证书映射到目录条目,从证书请求中指定的组件、证书主题名称、证书扩展和属性变量断言(AVA)常数将条目映射到目录条目。有关 AVAs 的更多信息,请查看目录文档。
CA 证书映射程序指定是否为 CA 创建条目,将证书映射到现有条目,还是同时执行。
如果发布目录中已存在 CA 条目,并且分配给此映射器的 dnPattern
参数的值已更改,但 uid
和 o
属性相同,则映射程序将无法创建第二个 CA 条目。例如,如果目录已有 uid=CA,ou=Marketing,o=example.com
的 CA 条目,并且一个映射程序被配置为创建带有 uid=CA,ou=Engineering,o=example.com
的另一个 CA 条目,则操作会失败。
操作可能会失败,因为目录的 UID Uniqueness 插件设置为特定的基本 DN。此设置可防止目录在该基本 DN 下有两个带有相同 UID 的条目。在本例中,它可防止目录在 o=example.com
下有两个条目,其 UID 为 CA
。
如果映射器无法创建第二个 CA 条目,请检查设置 UID 唯一插件的基本 DN,并检查目录中是否已存在具有相同 UID 的条目。如有必要,调整 mapper 设置,删除旧的 CA 条目,注释掉插件,或者手动创建条目。
在安装过程中,证书管理器会自动创建 CA 证书映射程序模块的两个实例。映射程序命名如下:
-
用于 CRL 的
LdapCrlMap
(请参阅 第 C.2.1.2 节 “LdapCrlMap”) -
用于 CA 证书的
LdapCaCertMap
(请参阅 第 C.2.1.1 节 “LdapCaCertMap”)。
参数 | 描述 |
---|---|
| 如果选定(默认),则创建一个 CA 的条目。 如果选中,证书管理器首先会尝试在目录中为 CA 创建条目。如果在创建条目时证书管理器成功,则会尝试将 CA 的证书发布到该条目。如果没有选择此项,则必须已存在该条目才能发布到该条目。 |
|
指定证书管理器应使用的 DN 模式来在发布目录中搜索 CA 的条目。
如果 CA 证书在其主题名称中没有
在上面的示例中, |
C.2.1.1. LdapCaCertMap
LdapCaCertMap
mapper 是 LdapCaSimpleMap
模块的实例。证书管理器在安装过程中自动创建此映射程序。
此映射程序在 目录中为 CA 创建一个条目,并将 CA 证书映射到 目录中的 CA 条目。
默认情况下,映射程序配置为在目录中为 CA 创建条目,用于查找 CA 条目的默认 DN 模式如下:
uid=$subj.cn,ou=people,o=$subj.o
uid=$subj.cn,ou=people,o=$subj.o
Copy to clipboardCopiedC.2.1.2. LdapCrlMap
LdapCrlMap
mapper 是 LdapCaSimpleMap
模块的实例。证书管理器在安装过程中自动创建此映射程序。
此映射程序在 目录中为 CA 创建一个条目,并将 CRL 映射到 目录中的 CA 条目。
默认情况下,映射程序配置为在目录中为 CA 创建条目。查找 CA 条目的默认 DN 模式如下:
uid=$subj.cn,ou=people,o=$subj.o
uid=$subj.cn,ou=people,o=$subj.o
Copy to clipboardCopiedC.2.2. LdapDNExactMap
LdapDNExactMap
插件模块配置证书管理器,以通过搜索与证书主题名称匹配的 LDAP 条目 DN 来将证书映射到 LDAP 目录条目。要使用此映射程序,每个证书主题名称必须与目录条目中的 DN 完全匹配。例如,如果证书主题名称是 uid=jdoe, o=Example Corporation, c=US
,则在搜索条目时,证书管理器仅搜索带有 DN uid=jdoe, o=Example Corporation, c=US
的条目。
如果没有找到匹配的条目,服务器会返回错误,且不会发布证书。
此映射程序不需要任何参数的任何值,因为它从证书获取所有值。
C.2.3. LdapSimpleMap
LdapSimpleMap
插件模块配置证书管理器,将证书映射到 LDAP 目录条目,方法是从证书请求、证书的主题名称、证书扩展和属性变量断言(AVA)常量中分离条目的 DN。有关 AVAs 的更多信息,请参阅 目录文档。
默认情况下,证书管理器使用基于简单映射程序的映射程序规则。在安装过程中,证书管理器会自动创建一个简单映射器模块实例,名为 LdapUserCertMap
。默认映射程序将各种类型的最终用户证书映射到对应的目录条目。
简单的映射程序需要一个参数,dnPattern
。dnPattern
的值可以是用逗号分开的 AVAs 列表。AVA 可以是变量,如 uid=$subj.UID
或常数,如 o=Example Corporation
。
-
示例 1:
uid=CertMgr, o=Example Corporation
-
示例 2:
cn=$subj.cn,ou=$subj.ou,o=$subj.o,c=US
-
示例 3: uid=
$req.HTTP_PARAMS.uid, e=$ext.SubjectAlternativeName.RFC822Name,ou=$subj.ou
在示例中,$req
使用证书请求中的属性,$subj
获取证书主题名称中的属性,$ext
从证书扩展中获取属性。
C.2.4. LdapSubjAttrMap
LdapSubjAttrMap
插件模块配置证书管理器,以使用可配置的 LDAP 属性将证书映射到 LDAP 目录条目。要使用此映射程序,目录条目必须包含指定的 LDAP 属性。
此映射器需要主题 DN 的确切模式,因为证书管理器在目录中搜索与整个主题 DN 完全匹配的值的属性。例如,如果指定的 LDAP 属性是 certSubjectDN
,且证书主题名称为 uid=jdoe, o=Example Corporation, c=US
,则证书管理器会为具有属性 certSubjectDN=uid=jdoe, o=Example Corporation, c=US
的条目搜索目录。
如果没有找到匹配的条目,服务器会返回错误并将其写入日志中。
下表描述了这些参数。
参数 | 描述 |
---|---|
|
指定包含证书主题名称的 LDAP 属性的名称作为其值。默认为 |
|
指定启动属性搜索的基本 DN。permissible 值是 LDAP 条目的有效 DN,如 |
C.2.5. LdapDNCompsMap
LdapDNCompsMap
插件模块实施 DN 组件映射器。此映射程序通过从组件构建条目的 DN 将证书映射到 LDAP 目录条目,如 cn
、ou
、o
、o、c
(在证书主题名称中指定的),然后使用它作为搜索 DN 在目录中定位条目。映射程序找到以下条目:
- 用于发布 CA 证书和 CRL 的目录中的 CA 条目。
- 用于发布最终用户证书的目录中的最终用户条目。
映射程序采用 DN 组件来构建搜索 DN。映射程序也采用可选的 root 搜索 DN。服务器使用 DN 组件组成 LDAP 条目以开始子树搜索和过滤器组件,以组成子树的搜索过滤器。如果没有配置 DN 组件,服务器将使用基本 DN 进行子树。如果基础 DN 为 null 且没有 DN 组件匹配,则返回错误。如果没有 DN 组件和过滤组件匹配,则返回错误。如果过滤器组件为 null,则会执行基础搜索。
DNComps
和 filterComps
参数都接受有效的 DN 组件或用逗号分开的属性。参数不接受属性的多个条目;例如,filterComps
可以设置为
。要创建具有相同属性的多个实例的过滤器,如如果目录条目包含多个 cn,ou
2,ou1ou
s,请修改 LdapDNCompsMap
模块的源代码。
以下组件通常在 DN 中使用:
-
UID
代表目录中用户的用户 ID。 -
cn
代表目录中用户的通用名称。 -
ou
代表目录中的一个机构单元。 -
O
代表目录中的一个机构。 -
L
代表本地(城市)。 -
st
代表状态。 -
C
表示国家/地区。
例如,以下 DN 代表名为 Jane Doe 的用户,其适用于示例公司(位于 美国 加利州)的销售部门:
cn=Jane Doe, ou=Sales, o=Example Corporation, l=Mountain View, st=California, c=US
cn=Jane Doe, ou=Sales, o=Example Corporation, l=Mountain View, st=California, c=US
Copy to clipboardCopied
证书管理器可以使用某些或全部这些组件(cn
、ou
、o
、l
、t 和 c
)构建 DN 以搜索目录。在创建映射程序规则时,可以为服务器指定用于构建 DN 的服务器;即,与目录中属性匹配的组件。这是通过
dnComps
参数设置的。
例如,组件 cn
,ou
,o
, 和 c
设置为 dnComps
参数的值。要在目录中查找 Jane Doe 的条目,证书管理器通过从证书读取 DN 属性值来构建以下 DN,并使用 DN 作为搜索目录的基础:
cn=Jane Doe, ou=Sales, o=Example Corporation, c=US
cn=Jane Doe, ou=Sales, o=Example Corporation, c=US
Copy to clipboardCopied-
主题名称不需要在
dnComps
参数中指定所有组件。服务器会忽略不是主题名称一部分的任何组件,如本例中的l
和st
。 未指定组件不用于构建 DN。在示例中,如果没有包含
ou
组件,服务器将使用此 DN 作为搜索目录的基础:cn=Jane Doe, o=Example Corporation, c=US
Copy to clipboardCopiedcn=Jane Doe, o=Example Corporation, c=US
对于 dnComps
参数,请输入证书管理器可用于准确组成 LDAP DN 的 DN 组件。然而,在某些情况下,证书中的主题名称可能与目录中的多个条目匹配。然后,证书管理器可能没有获得与 DN 不同的单个匹配条目。例如,主题名称 cn=Jane Doe, ou=Sales, o=Example Corporation, c=US
可能会与目录中名为 Jane Doe 的两个用户匹配。如果发生了这种情况,证书管理器需要额外的条件来确定哪个条目与证书的主题对应。
要指定证书管理器必须使用的组件来区分目录中的不同条目,请使用 filterComps
参数;详情请参阅 表 C.10 “LdapDNCompsMap 配置参数”。例如,如果 cn
,ou
,o
, 和 c
是 dnComps
参数的值,只有在 l
属性可用于区分具有相同 cn
,ou
,o
, 和 c
值的条目时才输入 l
。
如果两个 Jane Doe 条目通过 uid
属性的值区分 - 一个条目的 uid
为 janedoe1
,而其他条目的 uid
是 janedoe2
,则证书的主题名称可以设置为包含 uid
组件。
e
、l
和 st
组件不包含在为最终实体提供的标准证书请求表单集合中。这些组件可以添加到表单中,或者在以证书颁发形式编辑主题名称时插入这些组件。
C.2.5.1. LdapDNCompsMap 的配置参数
使用这个配置,证书管理器会使用 LDAP 目录中的证书映射其证书,方法是使用 dnComps
值组成 DN 和 过滤器Comps
值来形成子树的搜索过滤器。
-
如果 formed DN 为 null,服务器将使用子树的
baseDN
值。如果被组成的 DN 和基本 DN 都为空,服务器会记录错误。 -
如果过滤器为 null,服务器将使用
baseDN
值进行搜索。如果过滤器和基本 DN 都为空,服务器会记录错误。
下表描述了这些参数。
参数 | 描述 |
---|---|
|
指定开始搜索发布目录中条目的 DN。如果 |
| 指定证书管理器应开始搜索与 CA 或最终实体信息匹配的 LDAP 条目的位置。
例如,如果
如果 允许的值是有效的 DN 组件或用逗号分开的属性。 |
|
指定证书管理器应用于过滤搜索结果中的条目的组件。服务器使用
如果服务器在目录中找到多个与从证书收集的信息匹配的条目,搜索可以成功,并且服务器可以选择执行验证。例如,如果
允许的值是以逗号分开的证书 DN 中的有效目录属性。过滤器的属性名称需要来自证书的属性名称,而不是来自 LDAP 目录中的属性名称。例如,大多数证书具有用户电子邮件地址的 |