Sun Java System Web Proxy Server 4.0.8 管理指南

使用 certmap.conf 文件

证书映射用于确定服务器在 LDAP 目录中查找用户条目的方式。您可以使用 certmap.conf 文件配置证书(按名称指定)映射到 LDAP 条目的方式。您可以编辑此文件并添加条目,以匹配 LDAP 目录的组织和列出您希望用户拥有的证书。用户可以基于 subjectDN 中使用的用户 ID、电子邮件地址或任何其他值进行身份验证。具体而言,映射文件可定义以下信息:

证书映射文件位于以下位置:

server-root/userdb/certmap.conf

该文件包含了一个或多个已命名的映射,每个映射都应用于不同的 CA。映射的语法如下:

certmap name issuerDNname :property [ value]

第一行用于指定条目的名称以及形成 CA 证书中标识名的属性。name 是任意的,可以根据自己的喜好进行定义。但是,issuerDN 必须与颁发客户机证书的 CA 的颁发者 DN 完全匹配。例如,以下两个颁发者 DN 行仅在分隔属性的空格上有所差异,但服务器将其视为两个不同的条目:

certmap sun1 ou=Sun Certificate Authority,o=Sun,c=UScertmap sun2 ou=Sun Certificate Authority, o=Sun, c=US


注 –

如果使用的是 Sun Java System Directory Server 并在匹配颁发者 DN 时遇到问题,请检查 Directory Server 错误日志中是否存在有用的信息。


已命名的映射中的第二行和随后的行将属性与值相匹配。certmap.conf 文件中包含六个默认属性。您也可以使用证书 API 自定义属性。默认属性包括:

表 5–2 x509v3 证书的属性

属性 

描述 

c

国家(地区) 

o

组织 

cn

通用名称 

l

位置 

st

状态 

ou

组织单位 

uid

UNIX/Linux 用户 ID 

email

电子邮件地址 

有关这些属性的更多信息,请参阅映射样例中所述的示例。

创建自定义特性

您可使用客户机证书 API 创建自已的属性。创建自定义映射后,就可以按照如下所示引用该映射:

name:library path_to_shared_libraryname :InitFN name_of_ init_function

例如:

certmap default1 o=Sun Microsystems, c=US default1:library /usr/sun/userdb/plugin.so default1:InitFn plugin_init_fn default1:DNComps ou o c default1:FilterComps l default1:verifycert on

映射样例

certmap.conf 文件应至少包含一个条目。以下示例说明了 certmap.conf 的不同使用方法。

示例 #1 仅带有一个默认映射的 certmap.conf 文件

certmap default defaultdefault:DNComps ou, o, cdefault:FilterComps e, uiddefault:verifycert on

使用本示例,服务器可以在包含 ou=orgunit, o=org, c=country 条目的 LDAP 分支点处开始搜索,其中斜体文本将替换为客户机证书中主题 DN 的值。

然后,服务器将使用证书中的电子邮件地址和用户 ID 的值在 LDAP 目录中搜索匹配的条目。找到匹配的条目时,服务器将比较客户机发送的证书和存储在目录中的证书,以验证该证书。

示例 #2 带有两个映射的 certmap.conf 文件

以下示例文件中包括两个映射:一个是默认映射,另一个用于美国邮政总局 (US Postal Service)。

certmap default defaultdefault:DNCompsdefault:FilterComps e, uid

certmap usps ou=United States Postal Service, o=usps, c=USusps:DNComps ou,o,cusps:FilterComps eusps:verifycert on

如果服务器收到的证书来自美国邮电总局以外的其他用户,服务器将使用默认映射,即从 LDAP 树的顶端启动并搜索与客户机电子邮件和用户 ID 相匹配的条目。如果证书来自美国邮电总局,服务器将从包含组织单位的 LDAP 分支启动并搜索匹配的电子邮件地址。服务器还将验证该证书。其他证书不会进行验证。


注意 – 注意 –

证书中的颁发者 DN(即 CA 的信息)必须与映射的第一行中所列的颁发者 DN 一致。在以上示例中,来自颁发者 DN(即 o=United States Postal Service,c=US)的证书就不匹配,因为 DN 的 oc 属性之间没有空格。


示例 #3 搜索 LDAP 数据库

以下示例使用 CmapLdapAttr 属性在 LDAP 数据库中搜索名为 certSubjectDN 的特性,该特性的值与从客户机证书获取的整个主题 DN 完全匹配。本示例假定 LDAP 目录中包含带有 certSubjectDN 属性的条目

certmap myco ou=My Company Inc, o=myco, c=USmyco:CmapLdapAttr certSubjectDNmyco:DNComps o, c myco:FilterComps mail, uid myco:verifycert on

如果客户机证书主题为:

uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

服务器将首先搜索包含以下信息的条目:

certSubjectDN=uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

如果找到了一个或多个匹配的条目,服务器将继续验证各条目。如果未找到匹配的条目,服务器将使用 DNCompsFilterComps 搜索匹配的条目。在本示例中,服务器会在 o=LeavesOfGrass Inc, c=US 下的所有条目中搜索 uid=Walt Whitman