[编者注:本文讨论了如何设置自己的证书颁发机构。 关于SSL的未来文章将介绍如何使用4.6和4.6.1设置客户端身份验证以及如何从内部CA颁发服务器证书。]
因此,您是否想使用SSL保护组织中的Internet / Intranet服务器和客户端的安全,但对选择感到困惑? 本文概述了成为内部证书颁发机构(CA)相对于从外部CA获得证书的好处,并说明了设置自己的CA服务器的过程。
SSL是一种安全协议,它使您可以保护通过网络发送的信息,验证发送给收件人的邮件是否被篡改,验证服务器身份以防止服务器欺骗以及使用Domino版本4.6中提供的SSL 3.0来验证客户端身份。 如果您不熟悉SSL概念,请参阅Hugo Curbelo和Russell Lipton的文章“ SSL:它不再仅用于商业 ”。
CA是允许客户端和服务器进行通信的链接。 CA是拥有CA证书并创建和管理服务器和客户端证书的一个人或一群人。 CA还颁发受信任的根证书,该证书允许具有不同CA创建的证书的客户端和服务器相互通信。
可信根是使用SSL时要了解的重要概念。 只有当尝试建立连接的服务器或客户端具有用于接收服务器的证书的受信任的根证书时,客户端和服务器甚至两个服务器才可以相互通信。 换句话说,尝试建立连接的客户端或服务器不一定需要使用与其尝试连接的服务器相同的CA标记的证书。 但是,它们必须具有该服务器的CA的受信任的根证书。
让我们以ATM机作为该概念的日常示例。 如果您要使用的银行与您的银行有一个公共网络,则大多数银行都允许您使用其他银行的ATM机执行交易。 例如,如果我的银行是Cirrus网络的一部分,我可以在也属于Cirrus网络的任何其他银行使用我的卡; 我的ATM卡可以与Cirrus网络中其他银行的ATM机进行通信。 在此示例中,CA是颁发ATM卡的银行,而Cirrus网络是您的银行和其他银行使用的受信任根。
SSL证书的概念类似于Notes中的交叉认证的概念。 为了使用户和服务器在拥有来自不同组织的证书时进行通信,服务器或用户ID必须包含服务器的组织或组织单位的证书。 因此,我可能有从/ Lotus验证者发行的证书,但是合并到我的ID中的是/ Iris的证书。 在此示例中,/ Lotus与CA证书相关,/ Iris与可信根证书相关。
足够的证书和受信任的根。 如果您仍不清楚这些概念或需要更多信息,请参阅http://home.netscape.com/eng/ssl3/ 。
成为内部CA:值得深思
存在诸如Verisign之类的公司,这些公司是发布客户端和服务器证书以及可信根的可信第三方。 这些公司最重要的职责之一就是验证请求证书的人员。 根据您请求的证书的类别,可以确保向其颁发证书的人与要颁发证书的人相同。 这样可以防止人们冒充他人,并可能获得用户的信任。 证书的类别可以变化,并且可以指示外部CA在颁发证书之前完成的研究数量。
您还可以将自己设置为内部CA,这样就可以成为组织内的受信任第三方,并颁发服务器证书和受信任的根。 在4.6.1版中即将推出,您还可以使用Notes发行客户端证书。
在决定成为自己的CA之前,请考虑以下事项:
- 从某种意义上说,购买Domino和Notes软件后,免费签发证书。 外部CA收取签发新证书和重新认证过期证书的费用。 费用会根据证书类别和公司而有所不同,但典型的新服务器证书每台服务器的费用从250美元到350美元不等,每年续订的费用在250美元以上。 购买允许您颁发内部证书的其他软件也不便宜。 每年的典型费用为4,500美元至5,500美元。
- 内部CA使您可以更好地控制组织中的哪些服务器和客户端获得认证,以及它们获得证书的过程。 您甚至可以设置一个工作流应用程序,以简化请求过程并将其与发布Domino和Notes服务器和用户标识的过程集成在一起。
- 通常,使用内部CA而不是外部CA可以更快地发布新证书和更新证书。 外部CA在颁发证书之前需要时间来验证请求的来源。 相反,作为内部CA的性质允许使用更少的结构和更快的周转时间。
- 用于设置内部CA和管理证书的Notes应用程序使用Notes功能,许多管理员已经熟悉这些功能。 因此,管理员对颁发证书的培训应最少。
如果您不打算使用4.6.1,则需要确定是否要颁发客户端证书。 如果这样做,则必须将Notes和Domino升级到4.6.1或从外部CA获得客户端证书。 您不能使用4.6版发行客户端证书。 但是请注意,如果服务器和客户端接受另一个CA的证书作为受信任的根,则可以使客户端具有从外部CA颁发的证书,而服务器具有从内部CA颁发的证书。
设置内部CA服务器:基础知识
CA服务器同时需要CA和服务器的证书。 这意味着您将在CA服务器计算机上拥有两个密钥集文件:一个用于CA证书,另一个用于服务器证书。
在开始之前,您需要了解4.6版中包含的两个应用程序。
- 证书颁发机构 (certca.nsf)使您可以创建CA证书并将其存储在密钥环文件中,对服务器证书进行签名,并将客户端证书添加到公共通讯簿中。 如果使用版本4.6,则必须使用Notes随附的certca.ntf模板创建此数据库。 该应用程序包含您需要作为内部CA执行的所有活动。
- 服务器证书管理 (certsrv.nsf)使您可以向CA提交请求,将CA的证书作为受信任的根合并到服务器密钥集文件中,并管理存储在密钥集文件中的证书。 您可以将此应用程序用于内部或外部CA请求。 设置内部CA时,必须使用此应用程序,因为必须使用服务器证书为SSL设置CA服务器。
下面是另外两个术语,您可能想知道一些,如果不是别的,听起来像是水冷却器周围的SSL专家。
- X.509是SSL证书的行业标准格式。 Notes创建服务器证书,如果使用4.6.1,则使用此格式创建客户机证书。 使用标准格式可确保Domino和其他应用程序可以轻松交换证书。
- PKCS代表公钥密码标准,并且是另一种行业标准格式,但这一次用于证书申请。 您会在“证书颁发机构”和“服务器证书管理”应用程序中注意到此首字母缩写词。 这意味着,如果CA服务器了解如何读取PKCS格式,则它将了解您的证书请求。 当您向外部CA提交服务器证书请求时,这一点很重要。 您需要确保外部CA理解PKCS格式,而不是其他某种格式,例如PEM(隐私增强邮件)。
设置CA服务器涉及几个步骤。 在深入研究细节之前,它有助于了解整个过程。 如果您使用的是4.6.1,则这些步骤已被简化,并且只需单击一个按钮即可在后台进行。 如果您使用的是4.6.1,并且对了解“幕后”会发生什么感兴趣,则需要阅读以下部分。 如果您真的不感兴趣,请在完成4.6.1中的设置后跳到“测试CA服务器设置”部分。
每个项目符号后面列出了完成每个步骤的应用程序。
- 创建证书颁发机构应用程序。 [证书颁发机构申请]
- 创建一个CA证书并将其合并到CA密钥集文件中。 [证书颁发机构申请]
- 为CA服务器创建服务器证书请求。 注意:CA服务器上将有两个密钥集文件。 不要给他们相同的文件名。 [证书颁发机构和服务器证书管理应用程序]
- 使用CA证书批准服务器证书请求。 [证书颁发机构申请]
- 将CA证书作为受信任的根合并到服务器证书密钥环文件中。 [证书颁发机构和服务器证书管理应用程序]
- 将批准的服务器证书合并到服务器证书密钥环文件中。 [证书颁发机构和服务器证书管理应用程序]
- 为CA服务器的“服务器”文档中的端口打开SSL访问。 [公共通讯录]
设置内部CA服务器:步骤
现在,有关如何设置CA服务器的详细信息。 请注意:此过程中有很多步骤,但其中许多步骤非常明显,您甚至不需要说明。 如前所述,如果您使用的是4.6.1版,则这些步骤将有所不同。 以下步骤适用于4.6版。 以后的文章将介绍4.6.1所需的步骤。
使用以下图例来记住执行任务所需的应用程序:
图1.证书颁发机构图例
创建证书颁发机构应用程序
- 使用certca.ntf模板创建数据库,并将其命名为certca.nsf。
- 在访问控制列表中给自己CAPrivilegedUsers角色。 您还可以在组织中添加充当CA的其他个人或组的名称。
您不必创建“服务器证书管理”应用程序,因为Notes在安装过程中会自动创建此数据库。
创建一个CA证书并将其合并到CA密钥集文件中
- 打开证书颁发机构应用程序。
- 在打开的屏幕上,选择“创建证书颁发机构密钥环和证书”(步骤1)。
图2.证书颁发机构步骤
- 输入钥匙圈文件的名称,然后输入密码。
- 输入要用于CA的名称。 这是颁发证书时将使用的专有名称,该名称将显示在您签署的证书上。
- 单击创建证书颁发机构密钥环按钮。
- Notes显示确认您刚刚输入的信息。 阅读信息以确保它是正确的,然后单击“确定”。
- 备份刚刚创建的密钥环文件,并将其存储在安全的位置。
为CA服务器创建服务器证书请求
- 打开服务器证书管理应用程序。
- 在打开的屏幕上,选择“创建钥匙圈”(步骤1)。
图3.服务器证书管理步骤
- 输入钥匙圈名称和密码。 确保为服务器密钥环文件指定与CA密钥环文件不同的名称。
- 输入服务器专有名称的组成部分。 公用名必须是服务器的完全专有名称,例如Jspera.lotus.com。
- 单击创建钥匙圈按钮。
- Notes显示确认您刚刚输入的信息。 阅读信息以确保它是正确的,然后单击“确定”。
- 单击创建证书申请(步骤2)。
- 输入服务器的钥匙圈文件的密码(即您在上面的第3步中输入的密码)。
- 保留“粘贴到CA网站上的表单中”的状态。
- 单击创建证书申请。
- 该对话框中显示的信息是PKCS格式的证书。 您要将此证书从“服务器证书管理”应用程序复制到“证书颁发机构”应用程序。 突出显示对话框中的文本,然后将其复制到剪贴板。 单击确定。
- 打开证书颁发机构应用程序,然后选择“提交服务器证书请求”(“配置实用程序”下的第一个选项)。
图4.配置实用程序部分
- 将请求粘贴到表单上的“证书”字段中。 由于您同时充当服务器管理员和CA,因此不需要联系信息。
- 单击提交证书申请,然后单击确定。 这会将请求粘贴到证书颁发机构应用程序中。
使用CA证书批准服务器证书请求
- 在证书颁发机构应用程序的左窗格中,单击“证书申请”。
图5.证书颁发机构应用
- 打开您刚刚提交的请求。
- 由于您是管理员,因此请取消选择向管理员发送邮件的选项。
- 您可以根据需要更改证书的有效期。 否则,请单击“批准”。
- 输入CA的密钥集文件的密码,然后单击“确定”。 Notes还将询问您服务器的DNS名称。 输入该信息,然后单击“确定”。
将CA证书作为受信任的根合并到服务器证书密钥环文件中
- 打开证书颁发机构应用程序,然后选择“领取证书颁发机构证书”(屏幕上的最后一个选项)。
如有必要,请单击操作栏上的“主菜单”按钮以显示编号的步骤列表。 - 将CA的证书复制到剪贴板,然后单击“完成”。
请注意:将此证书复制到剪贴板有些棘手。 确保只选择了文本,没有空格或空白,并确保复制了Begin和End标记。 - 打开“服务器证书管理”应用程序,然后单击“将受信任的根证书安装到密钥环中”(步骤3)。
- 输入钥匙圈文件的密码。
- 输入在服务器密钥环文件中显示此受信任的根证书时要使用的标签。
- 保持剪贴板为选中状态,然后将受信任的根证书粘贴到提供的字段中。
- 单击将受信任的根证书合并到密钥环中。
服务器的专有名称信息应显示在“证书主题”框中,而CA的专有名称应显示在“证书颁发者”框中。 如果不是这种情况,请单击“取消”。 否则,请单击确定。
将批准的服务器证书合并到服务器证书密钥环文件中
- 在证书颁发机构应用程序的“证书请求”视图中,单击屏幕顶部标记为“查看批准的证书请求”的操作按钮。
图6.查看批准的证书请求按钮
- 选择批准的证书,然后将PKCS格式的证书复制到剪贴板。
不要忘记-仅文本; 没有空格或边距。 - 打开服务器证书管理应用程序。
- 单击“将证书安装到钥匙圈”。
- 输入服务器密钥环文件的密码。
- 保持剪贴板为选中状态,然后将剪贴板内容粘贴到提供的字段中。
- 单击“将证书合并到钥匙圈中”,然后单击“确定”以批准合并。
为CA服务器的服务器文档中的端口打开SSL访问
- 打开公共通讯簿并编辑CA服务器的服务器文档。
- 在“ Internet端口和安全性配置”部分中,执行以下操作:
- 确保SSL密钥文件字段中服务器的密钥环文件名正确。
- 在“ Web”列或要使用SSL的任何其他协议下的“ SSL端口状态”字段中,选择“启用”。
- 确保在客户端证书字段中选择否。
- 保存您的更改。
图7.服务器文档,“ Internet端口和安全配置”部分
- 选择证书颁发机构应用程序,然后选择文件-数据库-属性。 在“基本”选项卡上,选择“ Web访问:需要SSL连接”。
此时,浏览器可以使用SSL或其他Internet协议连接到服务器,具体取决于它们为URL输入的协议。 证书颁发机构应用程序的数据库属性设置可确保到服务器上证书颁发机构应用程序的所有连接都使用SSL。 您还可以设置CA服务器,以便通过在“服务器”文档的“ TCP / IP端口状态”字段中选择“重定向到SSL”来使与服务器的所有连接都需要SSL。
测试您的CA服务器设置
现在,进行总决赛-测试以确保您的设置有效。 我将为您提供有关使用浏览器和Web服务器测试设置的说明,但是您可以轻松地使用其他协议和客户端软件。 确保在“服务器”文档中为Web服务器打开了SSL。
在浏览器中,输入https://协议和CA服务器的URL,并附加证书颁发机构应用程序的文件名,例如:https://jspera.lotus.com/certca.nsf。 您也可以输入http://而不是https://,并且Notes会自动将URL重定向到https://,因为我们告诉Notes在Web用户尝试访问此数据库时强制SSL连接。
如果一切正常,浏览器将显示一条消息,指示您没有要访问的服务器的证书。 您应该在浏览器中接受证书。 接受证书后,您将获得证书颁发机构应用程序的打开页面。
如果您遇到问题,请检查以下几件事。
- 确保将证书颁发机构应用程序的访问控制列表中的“默认”条目设置为“具有创建访问权限的作者”。 如果在尝试访问数据库时提示您输入名称和密码,则对数据库的默认访问权限可能设置为“无访问权限”。
- 如果尝试访问服务器时收到超时错误,请确保服务器已启动并正在运行,并且可以成功ping通它。
- 如果服务器拒绝使用SSL与您建立连接,请确保在“服务器”文档的“ Internet端口和安全性配置”部分正确填写了信息。 具体来说,请确保为要使用的协议打开了SSL,并且指定了服务器的密钥环文件的正确名称。
- 确保您的浏览器支持SSL,并且已在浏览器中启用该选项。
版权所有 1998 Iris Associates,Inc.保留所有权利。
翻译自: https://www.ibm.com/developerworks/lotus/library/ls-Certification_Authority/index.html