在 Lotus Domino 6 中创建和使用认证中心

        简介:  本教程说明了如何实现构建到 Domino 6 中的公钥基础结构(Public Key Infrastructure,PKI)安全性技术。这项新技术完全符合 X.509/公钥基础结构(PKIX),它使开发人员能够在几分钟之内建立认证中心(CA)。本教程说明了如何生成和管理用于 Notes 客户机和因特网客户机的 X.509 验证字。

      

       本教程适合于希望使用包含在 Domino R6 中新的公钥基础结构(PKI)功能的高级 Domino 管理员。本教程讨论了在 Domino 6 中使用数字验证字的必要设置和配置。

您应该熟悉下列技术:

  • PKI 技术、术语和过程
  • X.509 验证字和 PKIX 标准
  • Domino 管理

       本教程展示了在 Domino 6 中实现的基于服务器的新认证中心(Certificate Authority,CA)的优点,这个新的 CA 基于管理所有认证问题的新的 Domino 6 服务器 ca 任务。先前的 Domino 发行版只提供了仅限于 X.509 验证字的独立 Domino CA 应用程序。基于服务器的 CA 提供了许多 Domino CA 应用程序中没有的新功能,基于 Domino 服务器的 CA 的优点中将对这些新功能进行详细讨论。

本教程演示了如何将 Domino 6 用作基础,以构建您自己组织的 PKI 基础结构。它讨论了 CA 设计问题,并给出了配置和使用 Domino PKI 的指示信息。它展示了如何将新的 Domino 6 CA 进程用于与 X.509 验证字相关的所有任务,并就如何为 Notes 和因特网客户机创建验证者给出了详细的指示信息。

本教程从说明老式 CA 应用程序和新式 CA 进程的差异入手。接下来,它循序渐进地说明了如何在 Domino 6 中采用标准 CA 进程。以下是本教程的章节目录:

  • 创建因特网和 Notes 验证者
  • 使用 Domino Directory 来将因特网验证字自动分发给 Notes 用户
  • 为使用 Web 浏览器的因特网客户机发布验证字
  • 复查认证请求
  • 撤销不再有效的验证字并用 CRL(验证字撤销列表,Certificate Revocation List)跟踪被撤销验证字的信息
 
  • Lotus Domino Server 6、Lotus Notes 6 和 Domino Administrator 6。请下载免费试用版
  • 任何支持 X.509 验证字的 Web 浏览器,例如 Mozilla 1.x、Netscape 4.x 及更新版本,或 Microsoft Internet Explorer 4.x 及更新版本。

确保您的 Domino 环境配置如下:

  • 管理员的当前位置文档应该至少指向与 CA 服务器处于同一个域中的主服务器和目录服务器。
  • 管理员位置文档的 Mail 选项卡上的邮件文件位置必须指向运行 CA 进程的服务器。
  • CA 管理员必须至少拥有该域的主 Domino Directory 上的 Editor 访问权。
  • 管理员必须检查“Current Server Document”中 Basic 选项卡的 Fully qualified Internet host name 域是否包含全限定域名(Fully Qualified Domain Name,FQDN),仅当缺省值出错时才修改它。这是因为 X.509 验证字用 FQDN(ibm.com 和 lab1.lotus.net 都是 FQDN 的示例)标识用户和主机。

Domino 6 中基于服务器的 CA

       配置 Domino 6 以实现 CA 的方法有两种。第一种,可以使用与 Domino R5 一起提供的认证中心应用程序 ― 数据库模板 cca50.ntf。这是一个普通的数据库,它包含用于请求和生成验证字的简单应用程序。使用 Domino R6 时,您还可以使用基于服务器的 CA ― 它是一个 Domino 服务器进程,负责维护请求、发布、分发和撤销 X.509 验证字的全部过程。

在下一页中,我们将研究使用基于 Domino 服务器的认证中心的优点。

 

使用基于服务器的 CA 有许多优点:

  • 它提供了发布 Notes 和因特网验证字的统一机制。
  • 它支持注册中心(RA)角色,您可以用它来将验证字批准/拒绝过程委派给组织中级别较低的管理员。
  • 它不需要具有对验证者标识和标识密码的访问权。在为 CA 进程启用验证者之后,就可以为管理员们指派注册中心角色,他们接下来就可以注册用户并管理验证字请求,而不必提供验证者标识和密码。
  • 它通过基于 Web 的验证字请求数据库简化了因特网验证字请求过程。
  • 它发布验证字撤销列表,该列表包含关于已撤销或已过期的因特网验证字的信息。
  • 它符合用于因特网验证字的 X.509 和 PKIX 安全性业界标准。

在稍后的章节中,您将看到如何设置 Domino 6 PKI 基于服务器的新 CA 功能。基于先前版本的 Domino CA 应用程序仍然有效,但它们缺少 CRL 和验证字撤销支持。

     

设置用于 CA 进程的验证者

 

Domino 6 CA 基础结构的核心是名为 ca 的特殊服务器任务,它管理所有 CA 问题。它维护指定的因特网和 Notes 验证者,并发布与 Certificate Requests 和 Administration Requests 数据库一致的验证字。它还创建并维护已发布验证字列表(Issued Certificate List,ICL),该列表包含关于验证者所发布的验证字以及 CRL 的信息。

将启动 ca 任务作为设置基于服务器的 Domino CA 的第一步通常是个好主意,上面这段话解释了原因。您将通过发出服务器控制台命令执行大多数 CA 管理任务。

您可以从服务器控制台使用下列命令动态地装入 ca 任务或从服务器任务列表中删除它:

 

load ca
tell ca quit


 

如果您希望 ca 任务随着 Domino 服务器自动启动,则在服务器的 notes.ini 文件的“ServerTasks=”节中添加 ca。

您可以选择在 CA 进程下启用哪个验证者。当然,您可以对 CA 进程同时启用因特网和 Domino CA 验证者,或对 Notes 客户机使用比较老式的验证者标识文件,而对 CA 进程使用因特网验证者。因为 Domino 进程管理器(Domino Process Manager)控制着 ca 任务,所以您可以通过在服务器控制台输入下列命令来加速对 CA 请求的处理:

 

tell adminp process all
tell ca refresh
tell ca stat


 

最后一条命令显示了更改是否已被处理。

可以通过在服务器控制台上输入 load ca -? 来获得更多帮助。

一旦 CA 进程开始运行,就可以着手实际的 CA 配置了。设置基于 Domino 服务器的 CA 包括下列任务:

  • 为 CA 进程创建/迁移因特网验证者。
  • 在服务器上将验证者添加到 CA 进程
  • 为每个因特网验证者设置 Certificate Requests 数据库

每个验证者都存入单独的已发布验证字列表(ICL)数据库,它是由 CA 进程和配置参数插入的。ICL 数据库使用缺省名并存储在服务器根目录下的 \icl 中(您可以修改缺省名称)。

 
  1. 从 Domino Administrator 单击 Configuration
  2. Tools 窗格上,选择 Registration=>Internet Certifier
  3. Register Internet Certifier 对话框中,选择“I want to register a new Internet certifier that uses the CA process”。该操作会选择 Basics 选项卡,如下图所示。
  4. 进入 Basics 选项卡后,单击 Create the certifier name,然后指定下列参数:
    • Common name(必需):验证者的名称(在本示例中 Common Name 是 LAB)
    • Organizational unit(可选):验证者组织单元的名称
    • Organization(可选):验证者组织的名称
    • City or locality(可选):组织所在的城市
    • State or province(可选):组织所在的州或省的全称
    • Country(可选):组织所在国家或地区的两字符的缩写名称
  5. 选择您希望用来存储验证者的服务器。
  6. 单击 OK 以接受所有设置。

可以在接受验证者参数之前修改缺省 ICL 数据库名称(例如 icl\icl_lab.nsf),但不推荐这种做法。

 
  1. 从 Domino Administrator 单击 Configuration
  2. 在 Tools 窗格中,选择 Certification=>Migrate Certifier
  3. Migrate Certifier 对话框中,单击 Select,然后在 Choose ID/key ringfile 对话框中选择您打算迁移的验证者的 cert.id。验证者标识的路径和文件名会出现在对话框中。
  4. 为选中的验证者标识或密钥环文件输入密码,然后单击 OK
  5. 在 Administrators 列表中,输入其余的认证中心管理员(Certificate Authority Administrator,CAA)和注册中心(Registration Authority,RA)的名称。
  6. 如果您的环境需要,填充 Certificates 选项卡上的其它可选域。
  7. 通过在服务器控制台上输入以下命令来将验证者添加到 CA 进程:
    tell adminp process all
    tell ca refresh
    

  8. 通过输入下面这条控制台命令来查看新的验证者是否已被添加:
    tell ca stat
    

如果您希望将 Domino CA 应用程序生成的因特网验证者迁移到基于服务器的 CA 进程(也适用于从任何 CA 导出的任何标准 CA 密钥环),则请执行以下步骤:

  1. 从 Domino Administrator 单击 Configuration
  2. Tools 窗格上,选择 Registration=>Internet Certifier
  3. Register Internet Certifier 对话框中,选择“I have a key ring file I want to register。”
  4. 按先前描述的将 Notes 验证者迁移到 CA 进程过程的步骤 3 到 8 完成 Migrate Certifier

保留验证者的备份副本总是个好主意。您应该在验证者注册期间进行这一操作。

  • 选择 Misc 选项卡,然后单击 Create a local copy of the certifier ID。指定验证者标识文件名称和密码,然后单击 OK
  • 指定验证者标识文件名和密码,然后单击 OK

验证者标识的副本被保存到缺省路径 ...\notes\data\ids\certs\cert.id。这个副本用于备分目的。

如何保护新创建的验证者的安全是个非常重要的问题。前一页中所示的 Basics 选项卡,显示了用于验证者的三个安全性选项:

  • Encrypt certifier with Locking ID 提供了最高的安全性,但它相对麻烦。这种类型的加密需要适当用户的标识和密码。
  • Encrypt certifier with Server ID 提供了最低的安全性,但它最方便。
  • Require password to activate 提供了中等安全性,但也相对麻烦。

如果您选择用服务器标识和密码加密验证者,则需要从服务器控制台用下列命令激活验证者:

 

tell ca activate password


 

如果用锁定的或选中的标识加密验证者标识,则验证者在创建时是被锁定的;使用这条控制台命令进行解锁:

 

tell ca unlock ID file password

 

用于因特网验证者的其它参数

 

还要为因特网验证者设置一些其它的重要参数,包括验证字有效期(缺省值是 2 年,最大值是 30 年!)、密钥用法和验证字用途。对于具有 X.509 验证字的基于 IPSec 的 VPN,这些选项就特别有用。请根据您的自身情况进行这些设置。以下是设置它们的基本方法:

  1. Creating Certifier 对话框中选择 Certificates 选项卡。
  2. 设置验证字有效期。适当地定义密钥用法。
  3. 按需设置验证字用途。
  4. 如有必要,使用用于包括关于 CRL 分发点的其它验证字域的选项。
  5. 单击 OK 以接受 Certificates 设置。
 

所有因特网验证者都自动提供一个验证字撤销列表(CRL),该列表存储在验证者文档中的 Domino Directory 和验证者的 ICL 数据库中。当您创建验证者时,可以就列表的工作方式进行一些决策,以确保过期验证字不允许任何用户访问受保护的网络资源。

以下是指定这些设置的方法:

  1. Creating Certifier 对话框选择 Misc 选项卡。
  2. 复查新生成验证字的 CRL 信息。
  3. 根据环境需求调整任何设置:
    • CRL 有效期 ― 缺省值是两天
    • CRL 发布之间的时间 ― 缺省值是一天
    • 签名算法 ― 缺省值是密钥长度为 2048 的 RSA MD5,2048 是此处的最大值。
  4. 单击 OK 以接受各种杂项设置。

管理验证者

 

在创建了因特网验证者文档之后,您需要用以下服务器控制台命令将验证者添加到 CA 进程:

 

tell adminp process all
tell ca refresh


 

然后查看是否已添加了新验证者:

 

tell ca stat


 

在验证者注册期间 CA 进程为其指定了验证者号。当您对新验证者执行 tell ca stat 命令时,可以看到指定给该验证者的号码。

如果该验证者是受密码保护的,则使用下面这条命令激活密码:

 

tell ca activate certifier_number password


 

用这条命令取消激活验证者:

 

tell ca deactivate certifier number


 

禁用验证者文档的最简单方法是从基于服务器的 CA 中删除该 CA 进程,这要求对 Domino Directory 有 Editor 访问权。缺省情况下,全权管理员和(普通的)管理员都有 Domino Directory 访问权。确保所有 CA 管理员也都有禁用验证者所必需的访问权。

以下是禁用因特网验证者的方法:

  1. 从 Domino Administrator 单击 Configuration,然后在 Server 窗格中打开 Certificates 视图。
  2. 选择打算禁用的验证者文档,然后双击打开它。
  3. 单击 Edit Certifier
  4. CA Configuration 选项卡(如图所示)上,将 Process Enabled 选择为 No 以禁用该验证者的 CA 进程。
  5. 单击 Save & Close

发布用于 Notes 客户机的因特网验证字

 

Notes 用户使用因特网验证字的好处日益增多,因为因特网验证字是加密因特网邮件(使用 S/MIME 协议)和保护 Web 通信(从 Notes 浏览器使用 SSL)所必需的,这两种通信方式在因特网上正在变得越来越流行。

Notes 用户标识文件可以存储 Notes 验证字和因特网验证字。Notes 验证字总是现成的,但因特网验证字必须由 Domino 管理员对每个用户进行发布。幸运的是,可以使用 Notes 标识文件中现有的公钥和私钥,然后将该文件添加到用户地址簿中的 Person 文档来使因特网验证字的发布自动化。使用 Domino Directory 发布因特网验证字可以将因特网验证字自动地分发给 Notes 用户。

首先要确保所有 Notes 用户都在其 Person 文档中指定了有效的因特网地址。此外,您必须向 Domino 地址簿中的选定用户添加一个 CA 进程创建的因特网验证字。

  1. 从 Domino Administrator 单击 People & Groups
  2. 选择需要因特网验证字的用户的名称。
  3. 选择 Actions=>Add Internet Cert to Selected People
  4. 选择正确的注册服务器,它出现在 Server 按钮旁边的对话框的顶部。
  5. 选择使用 CA 进程的选项。
  6. 如果您希望使用平面 CA 密钥环文件,则选择 Supply the certifier key ring file and password 选项。
  7. Add Internet Certificates to Selected Entries 对话框中,确认到期日期是有效的。如有必要,更改这个日期。
 

在 Administration Requests 数据库中为每个选定的用户创建了一个验证字请求。当 CA 处理该请求时,它创建“Add Internet Certificate to Person Record”请求。

当 Administration Requests 数据库和 Domino Directory 的管理服务器进行复制时,Administration Process 将验证字放置在用户的 Person 文档中。

在 Domino Directory 复制户邮件或打开服务器上的任何数据库后,Notes 会识别某个在 Domino Directory 中而不在用户的标识文件中的验证字。Notes 自动将因特网验证字放到用户的标识文件中。

 

为因特网客户机发布因特网验证字

 

     新的 Domino 6 PKI 为因特网客户机(即那些使用 Web 浏览器的程序)提供了轻松而“优雅”的发布因特网验证字的方式。这方便了构建基于 Domino R6 的统一的组织 PKI 环境。

您所创建的每个因特网验证者都需要 Certificate Requests 数据库(certific.ntf)来管理验证字请求。这个数据库存储已经提交到 Administration Process 的验证字和撤销请求。可以将 Certificate Requests 数据库存储在域中的任何服务器上,包括处于网络防火墙外部、可以担任因特网应用程序的服务器。这样客户机就可以使用 Web 浏览器接口请求验证字以及获取已发布的验证字。使用 Certificate Requests 数据库,您可以处理对客户机和服务器验证字的请求。

以下是创建 Certificate Requests 数据库的方法:

  1. 选择 File=>Database=>New,然后选择您希望用来存储 Certificate Requests 数据库的服务器。
  2. 输入数据库标题和文件名(在本例中是 certreq.nsf)。
  3. 选择 Certificate Requests (R6) 模板(certreq.ntf)。Certificate Requests 数据库在创建时就是打开的。
  4. 复查新 Certificate Requests 数据库的配置文档。
  5. 检查下列域:
    • 运行 CA 进程的服务器名称
    • 验证者
    • 所支持的验证字类型(服务器、客户机或两者都支持)
  6. 查看其它域;大多数域是可选的,但您应该根据自身情况填充一些域。
 

您可以决定 Administration Process 处理验证字请求的方式。最显而易见的方法是手工处理:RA 各自查看提交到 Certificate Requests 的请求,并分别批准或拒绝每个请求。

也可以使用自动化请求处理。当自动化请求处理启用时,Administration Process 每隔五分钟就运行一次特殊代理程序,以在 Certificate Requests 数据库和管理数据库之间传送请求 ― 不需要 RA 插手。根据验证字策略批准或拒绝请求。

管理 Certificate Requests 数据库时,最后一个需要考虑的重要选项是邮件通知。该选项允许您确定:在 CA 处理完一个验证字请求后,是否发送电子邮件通知。

 

获取验证字的第一步是提交验证字请求。要测试 Certificate Requests 数据库,请亲自从 Web 浏览器或 Notes Web 客户机发送一个或多个请求。输入 Certificate Requests 数据库的 URL:http://somewhere.com/certific.nsf

 

Domino CA 和 RA 可以查看关于等待批准的服务器和客户机验证字请求的信息,如下图所示。

如果您已经设置了手工请求处理,则评判者(reviewer)手工打开 Certificate Requests 数据库并单击 Pending/Submitted Requests,然后使用 Submit Selected Requests 按钮将请求传送到 Administration Requests 数据库(admin4.nsf)。

即使启用了自动化处理,CA 或 RA 必须显式地在 Administration Requests 数据库中批准验证字请求。一旦完成之后,自动化处理就每隔五分钟将批准的请求移回到 Certificate Requests 数据库。

 

在前一页 Pending/Submitted Requests 视图中的第二个按钮是 Pull Selected Requests,它检索 RA 已经解决了的请求。在启用自动化处理时,这种操作每五分钟自动进行一次。

评判者也可以通过选择 Certification Authority Requests=>Certificate Requests 来查看 Administration Requests 数据库(admin4.nsf)中的验证字请求。

请求验证字的因特网客户机收到电子邮件,其中包含可以用于检索已指派的验证字的提取号码。客户机可以使用其 Web 浏览器并指向 Certificate Requests 数据库(http://www.somewhere/certific.nsf),在输入提取号之后,用户就可以在 Web 浏览器中安装验证字了,如下所示:

 

撤销验证字和使用验证字

 

Domino 6 引入了对验证字撤销列表(CRL)的支持,CRL 是一种包含已撤销公钥验证字序列号的时间戳记列表。CRL 被放置在一些目录中,应用程序在信任验证字之前可以从这些目录检查验证字的状态。CRL 和验证字撤销支持对于使用 X.509 验证字很重要。

在 Domino 6 中,每个因特网验证者将其自身的 CRL 存储在验证者的 ICL 数据库中。CRL 与验证者相关联,并由该验证者签发。相同的 CRL 还存储在 Domino Directory 中,需要验证字认证的实体在这里用它来证明验证字的有效性。CA 进程为每个因特网验证者发布和维护 CRL。

请记住,验证字在撤销之后,就不再可信了。

 

您在创建新的因特网验证者的时候配置了 CRL。可以指定 CRL 的有效时间长度,以及发布新 CRL 之间的间隔。在配置了 CRL 之后,验证者定期发布它们,而 CRL 将在无人照看的方式下运行。

使用 CRL,您可以管理组织中已发布的验证字。HTTP 服务器和 Web 浏览器检查 CRL 以确定给定的验证字是否已经被撤销,如果已经撤销,则不会再得到验证者的信任。

 

Domino 6 可以使用两种类型的 CRL:定期的和非定期的 CRL。对于定期的 CRL,您可以配置有效期间隔(CRL 的有效周期)以及发布新 CRL 之间的间隔。即使自从上次 CRL 发布以来并未撤销过验证字,每个验证者都会在指定时间发布 CRL。这个过程意味着,如果管理员撤销了验证字,则该验证字就会在该验证者的下一个计划发布的 CRL 中出现。当然,当您选择设置时,所指定的 CRL 有效期周期应该大于各次 CRL 发布之间的时间周期。

您可以在发生重大的破坏安全性的事件时发布非定期 CRL,例如,如果验证字管理员离开了公司或验证字已泄漏。此类撤销不影响下一个计划发布的 CRL 的发布时间或内容。使用 tell 命令来发布非定期 CRL:

 

tell ca CRL issue certifier_number


 

为特定验证者发布非定期 CRL,其中 certifier_numbertell ca status 命令的结果中所指定验证者的号码。

 

要撤销验证字:

  1. 从 Domino Administrator 选择 Files 选项卡。
  2. 打开发布您需要撤销的验证字的验证者的 ICL 数据库(从 /icl 目录)。
  3. 选择 Issued Certificates\By Subject Name 视图,然后双击打算撤销的验证字的 Issued Certificate 文档。
  4. 单击 Revoke Certificate
  5. Revocation Reason 中选择撤销验证字的原因。
  6. 通过在控制台上发出以下命令发布非定期 CRL:
    tell ca CRL issue certifier_number

CA 进程下一次刷新时,Issued Certificate 文档会更新,以表明该验证字已被撤销。当下一次打开 Issued Certificate 文档时,Revocation Information 部分应该显示该验证字已被撤销。您还可以在这里发现撤销日期和时间、撤销验证字的原因以及验证字变成无效的日期和时间。

 

 

 

 

转自:http://www.ibm.com/developerworks/cn/education/lotus/campaign/lsdomino6ca/index.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值