简介: 本文描述了如何在 Lotus Domino 中配置使用第三方 CA 提供的数字证书以进行 Domino Web 页面的 SSL 登录,以及在收发 Internet 邮件时如何使用第三方 CA 数字证书进行签名和加密,并以 Windows CA 为例,全程描述了证书申请、注册、使用的过程。
发布日期: 2011 年 4 月 14 日
级别: 中级
访问情况 1482 次浏览
建议: 0 (添加评论)
CA 为 Certificate Authority 的缩写,也就是认证权威机构。它提供数字证书的发放、管理、取消等服务。认证权威机构将自己的公钥放在根证书里发布到互联网上,以证明该机构发放的服务器和个人证书。在互联网上通过数字证书来进行身份认证、数字签名、数字加密等操作,从而保证信息安全。
在 Lotus Domino/Notes 里也需要有认证机制来保证服务器和个人用户的身份和信息安全。不同于互联网上的 CA,Domino 的每个服务器和个人都拥有唯一的 ID 文件,而所有这些 ID 文件都是由一个根—— certifier ID 发放的。这个根就是 Notes 层次名的最后一级。Domino 里使用 ID 文件来完成邮件加解密、身份验证。
为了使 Domino 用户在 Notes 世界以外的互联网上保证身份验证的正确和信息传播的安全,需要使用 CA 来发放符合互联网标准的数字证书。Lotus Domino 本身也带有 CA 服务,因而可以将 Domino 服务器配置成一个 CA,并使用 Domino CA 发放的数字证书或进行 SSL,或进行 internet 邮件的签名、加密等操作。
前文已经提到,互联网上存在独立的认证权威机构。常见的受信任的 CA 根证书已经被加载到常见浏览器和服务器中。因而可以配置 Domino 利用第三方 CA。本文以 Windows Server 2003 上的 Certificate Authority 为例,是为了让读者在使用 Domino 的同时,了解在第三方 CA 申请服务器证书及个人证书的全过程。文中描述了如何在 Domino 中配置使用第三方 CA 提供的数字证书进行 SSL 登录 Domino Web 页面,并在收发 Internet 邮件时使用第三方 CA 数字证书进行签名、加密的方法。
1 . Domino 新建密钥环 (key ring) 文件
Key Ring 文件将保存有密钥对,即公钥和私钥。在 Domino Administrator Client,打开数据库 Server Certificate Admin(certsrr.nsf),在右侧选择“1. Create Key Ring”。如图 1 所示。
图 1. 创建密钥环
在表单中输入必要的信息后点击按钮 “Create Key Ring”。注意 Common Name 作为服务器的主机名要正确输入,后面的步骤要用到。key ring 建好后会保存在 Notes 数据目录,默认名为 keyfile.kyr。
Domino 需要自己产生服务器证书申请,提供给第三方 CA。仍然是在数据库 Server Certificate Admin,选择“2.Create Certificate Request”。在随后出现的表单中点击按钮,Certificate Request 将会生成,内容是 BEGIN 和 END 行之间的部分。如图 2 所示。
图 2. 创建证书申请
拷贝申请内容,包括 BEGIN 到 END 行到剪贴板。后面要将之粘贴到第三方 CA Web 页面表单中。
打开 Windows CA Web 站点首页 http://<WindowsCAHost>/certsrv 。单击 Request a certificate 至下一页面,单击 advanced certificate request 至下一页面,单击 Submit a certificate request by using a base-64-encoded CMC or PKCS #10 file,出现提交证书请求的表单。将刚才上一步中的申请内容粘贴在“Saved Request”中,点击 Submit 提交请求。如图 3。
图 3. 提交证书申请
登录 Windows 服务器,从 Adminitrative tools 中打开 Certification Authority(CA)。在 CA 中打开左边的节点“Pending Requests”,在右侧视图选择刚才提交的请求。右键,选择 All Tasks > Issue。
由 CA 颁发的证书,实际上是被 CA 的公钥签过名的,因而可以证明证书的权威性。
回到 Windows CA Web 站点首页,选择 View the status of a pending certificate request 至下一页面,选择上一步提交的证书请求,在下一页面选择 Base 64 encoded,下载证书。
回到 Windows CA Web 站点首页,选择 Download a CA certificate。在表单中选择 Encoding method 为 Base 64,点击 Download CA certificate 下载 CA 根证书保存到本地,后面的步骤将会用到。
在安装服务器证书至 key ring 之前,必须要先安装 CA 的信任根证书。有些 CA 可能还有中级证书,因此在安装完根证书后,再需要安装中级证书,最后才可以安装服务器证书。这样才能证明服务器证书的来源和权威。
默认情况下,Domino 已经加载了常见的 CA 根证书比如 Verisign 和 Entrust。在数据库 Server Certificate Admin 里可以查看已经安装了的信任根,只需选择左侧 View & Edit Key Rings,如图 4 所示。
图 4. 浏览密钥环列表
本文使用测试用 Windows CA,因而该 CA 信任根并不包含在 Domino 中,需要按照下列步骤安装。
在数据库 Server Certificate Admin 中,左侧选择 Create Key Rings & Certificates,右侧视图里选择“3.Install Trusted Root Certificate into Key Ring”,在随后出现的表单里,选择 Key Ring 文件名和 CA 根证书文件所在路径和文件名,即上一步从 Windows CA Web 站点下载的根证书文件。如图 5 所示。
图 5. 安装受信任的根证书
安装完毕后,如需查看请依据图 4 所示,并选择正确的 key ring 文件查看。
接下来将要安装步骤 5 中下载到本地的服务器证书文件到 Domino key ring 中。在数据库 Server Certificate Admin 中选择“4.Install Certificate Into Key Ring”,在随后出现的表单中选择正确的文件名。如图 6 所示。
图 6. 给密钥环安装证书
将保存在 Notes 客户端本地数据目录的 key ring 文件(默认为 keyfile.kyr 和 keyfile.sth 文件)拷贝到 Domino 服务器端的数据目录下。并更新 Server document 或 Internet Site document 启用 SSL。如图 7。
图 7. 服务器文档
注意填写正确的 key ring 文件名,不需要绝对路径。在 Web 页里启用 SSL 端口。可选配置:在 Authentication options 中的 Client certificate 设为 Yes,Name & password 设为 No,用户可以在安装了个人证书的浏览器上不输入密码,只用个人证书就可以登录 Domino Web 站点。
接着重启 Domino HTTP 服务。在 Domino 服务器控制台敲入命令“tell http restart”。
请先在申请个人证书的浏览器上安装该 CA 的根证书。可以打开根证书文件,点击按钮“安装证书”即可。或者访问 Windows CA Web 站点首页 http://<WindowsCAHost>/certsrv,选择 Download a CA certificate,下一页面单击 install this CA certificate chain。
回到 CA Web 站点首页,选择 Request a certificate 至下一页面,选择 Web Browser Certificate。在表单中填入必要的信息。如图 8 所示。
图 8. 应用个人数字证书
提交请求后,到 Windows CA 中审批通过请求,步骤如第一部分第 4 步。
下面安装个人证书到之前申请时所用的浏览器上。在 CA Web 首页选择 View the status of a pending certificate request,按照网页要求安装即可。
如果浏览器是 Microsoft IE,在 Internet 选项中可查看证书。选择“内容”页,点击“证书”,在个人页中将看到个人证书已经成功安装到浏览器。如图 9 所示。
图 9. 互联网选项
在 Domino 中以 Domino Certificate Publication Requests 为模板创建新的数据库。打开之前提交、安装个人证书的浏览器,访问该数据库:https://<DominoHost>/domcertpubreq.nsf。其中 domcertpubreq.nsf 为刚刚创建的 Domino Certificate Publication Requests 数据库文件名。
注意地址中使用 https。
浏览器自动会提示选择用户个人证书,单击需要注册的个人证书,确定即可。
在接下来出现的表单中为该浏览器输入用户名等信息,点击按钮 Submit Certificate 提交。 如图 10 所示。
图 10. 注册浏览器证书
接下来在 Notes 中打开 Certificate Publication Requests 数据库,找到 Submitted Certificates > Waiting for Approval。双击刚刚提交的请求,在表单中选择合适的 Domino 地址本里的用户,点击按钮“Accept”,如图 11。
图 11. 接受申请
Domino admin process 会自动将证书加到上面选择的 Domino 地址本里的用户 Person 文档中。稍等一会儿,该用户会收到邮件通知。此时查看 Person 文档,会看到 Internet Certificate 已经被加进来了。如图 12。
图 12. 证书被加到用户 Person 文档中
第四部分:Domino 使用第三方 CA 数字证书收发 SMIME 邮件。
上一部分申请 Windows CA 个人数字证书时,选择了 Web Browser Certificate,因此这个证书只能做客户端登录的身份认证。第二部分已经提到过,可以配置成只用证书登录 Domino Web 站点。
至于收发 SMIME 邮件,即用数字证书签名加密 internet 邮件,步骤和第三部分相似,只是证书申请的类型必须选择 E-Mail Protection Certificate。有些 CA 也将身份认证和邮件加密功能放在同一个数字证书里,就会简单得多。
以下为说明如何实现 Domino 用户使用第三方 CA 数字证书收发 SMIME 邮件,作者已为 2 个 Domino 地址本里的用户申请 E-Mail Protection Certificate,步骤请参考本文第三部分。
以 Microsoft Outlook Express 客户端邮件软件为例,在账户信息里选择正确的个人证书即可发送 SMIME 邮件了。如图 13 所示。
图 13. 选择个人证书
用 Outlook 发送一封签名邮件给另一个 Domino 用户,该用户从 Notes 里打开邮箱,可以看到状态栏上显示签名信息“signed by zhangsan zhangsan@ibmtest.com on xxxx, according Si Li/IBM”,这说明邮件已经被发件人的私钥签名。
收到签名邮件的收件人同时收到了对方发来的公钥,无论是 Notes 还是 Outlook 会将之自动保存,因而收件人回复邮件或发新邮件给发件人时,可以选择用对方公钥加密。从而实现收发 SMIME 邮件。
学习
- 查看文章 How to set up SSL using a third-party Certificate Authority(CA),了解配置 SSL 过程中可能出现的问题和解决方法。
- 查看文章 What is a Trusted Root,了解关于信任根的信息。
- 访问 developerWorks Lotus 专区。
- 随时关注 developerWorks 技术活动和 网络广播。
讨论
- 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。