本节说明了什么是 S/MIME applet,并提供了为 Communications Express Mail 设置 S/MIME 的基本配置过程。该配置过程包括设置 S/MIME applet 的参数及 Messaging Server 的选项。
对邮件进行签名、加密或解密的过程以及验证专用和公共密钥的各个步骤都由一个特殊的 applet 来处理,该 applet 称为 S/MIME applet。可以通过 smime.conf 文件中的参数和 Messaging Server 选项来配置 S/MIME 功能。图 20–1 显示了 S/MIME Applet 与其他系统组件的关系。
具有使用 S/MIME 权限的 Communications Express Mail 用户首次登录到 Messaging Server 时,系统将显示有关 S/MIME applet 的一系列特定提示。用 "Yes" 或 "Always" 回答完提示问题后,S/MIME applet 即被下载到计算机中。此 applet 将始终保留在计算机中,直至注销 Communications Express Mail。
有关更多信息,请参阅管理证书。
用户每次登录 Communications Express Mail 时都将下载 S/MIME Applet,除非在用户计算机上针对 Java 2 Runtime Environment (JRE) 启用了高速缓存。启用高速缓存后,S/MIME Applet 的副本会在首次下载之后保存在用户计算机上,这样,用户就不必每次登录时都下载此 Applet。
高速缓存可以提高性能,您可以指导用户执行以下步骤来针对 Java 2 Runtime Environment 版本 1.4.x 启用高速缓存:
转至 Windows 控制面板。
双击“Java Plug-in”图标 (Java 2 Runtime Environment)。
单击“高速缓存”选项卡。
选中“启用高速缓存”复选框。
单击“应用”。
下载之后,用户不会感觉到 S/MIME applet 的存在。而看起来似乎是 Communications Express Mail 在对邮件进行签名、加密或解密。如果不弹出错误消息,用户也感觉不到验证专用或公共密钥的过程。有关更多信息,请参阅验证专用密钥和公共密钥。
S/MIME 的配置文件 smime.conf 包含每个 S/MIME 参数的描述性注释和示例。Messaging Server 附带有 smime.conf 文件,该文件位于目录 msg-svr-base/config/ 中,其中 msg-svr-base 是安装 Messaging Server 的目录。
以下过程包含配置 S/MIME 功能必需的最少步骤:
安装 Messaging Server 之后,验证 Communications Express Mail 的基本功能是否可以正常工作。
如果尚未执行此操作,请为有权使用 S/MIME 功能的所有邮件用户创建或获取专用-公共密钥对和标准 X.509 v3 格式的证书。
如果使用智能卡存储密钥和证书,则请执行以下操作:
如果使用浏览器的本地密钥库存储密钥和证书,请指导邮件用户如何将密钥对和证书下载到本地密钥库。
确保客户机上具有正确的库,以支持智能卡或本地密钥库。请参见客户机的密钥访问库
设置 LDAP 目录以支持 S/MIME:
使用证书授权机构的标识名将 CA 的所有证书存储在 Directory Server 可以访问的 LDAP 目录中。这些证书的 LDAP 属性为 cacertificate;binary。请记下存储这些内容的目录信息。在后面的步骤中将用到这些信息。
有关指定 LDAP 目录信息的示例,请参见表 20–3 中的 trustedurl;有关搜索 LDAP 目录的信息,请参见管理证书。
在 Directory Server 可以访问的 LDAP 目录中存储公共密钥和证书。公共密钥和证书的 LDAP 属性为 usercertificate;binary。请记下存储这些内容的目录信息。在后面的步骤中将用到这些信息。
有关指定 LDAP 目录信息的示例,请参见表 20–3 中的 certurl;有关搜索 LDAP 目录的信息,请参见管理证书。
确保发送或接收 S/MIME 邮件的所有用户都可以通过其用户条目中的 LDAP 过滤器使用 S/MIME。过滤器是通过 mailAllowedServiceAccess 或 mailDomainAllowedServiceAccess LDAP 属性来定义的。
注释:默认情况下,如果未使用 mailAllowedServiceAccess 或 mailDomainAllowedServiceAccess,则将允许所有包括 smime 的服务。如果要使用这些属性明确指定服务,则必须指定服务 http、smtp 和 smime,以授予邮件用户使用 S/MIME 功能的权限。
有关更多信息,请参见授予使用 S/MIME 功能的权限。
用任何可用的文本编辑器来编辑 smime.conf 文件。有关参数的语法,请参见文件开头的注释。
smime.conf 中的所有文本和示例参数前面都带有注释字符 (#)。可以将所需参数添加到 smime.conf 中,或将参数示例复制到文件的其他部分并更改参数示例的值。如果要复制并编辑示例,请确保删除示例行开头的 # 字符。
将这些参数添加到文件中各自对应的行中:
trustedurl(请参见表 20–3)—设置为 LDAP 目录信息,以查找 CA 的证书。使用在步骤 a 中保存的信息。
usersertfilter(请参见表 20–3)—设置为 smime.conf 文件中的示例的值。该示例值通常都是指必需的过滤器。复制示例并删除示例行开头的 # 字符。
该参数指定 Communications Express Mail 用户的主、备用和等效电子邮件地址的过滤器定义,以确保在将用户的专用-公共密钥对分配给其他邮件地址时可以找到这些密钥对。
sslrootcacertsurl(请参见表 20–3)—如果要将 SSL 用作 S/MIME Applet 和 Messaging Server 之间的通信链路,则应使用 LDAP 目录信息设置 sslrootcacertsurl 以查找 CA 的证书(这些证书用于验证 Messaging Server 的 SSL 证书)。有关更多信息,请参见使用 SSL 确保 Internet 链路的安全。
checkoverssl(请参见表 20–3)—如果不将 SSL 用作 S/MIME Applet 和 Messaging Server 之间的通信链路,则设置为 0。
crlenable(请参见表 20–3)—设置为 0 将立即禁用 CRL 检查,因为执行 CRL 检查可能会要求向 smime.conf 文件添加其他参数。
logindn 和 loginpw(表 20–3)—如果需要进行验证才能访问包含公共密钥和 CA 证书的 LDAP 目录,则请将这些参数设置为具有读权限的 LDAP 条目的标识名和密码。
注释:无论何时使用由 crlmappingurl、sslrootcacertsurl 或 trustedurl 参数指定的 LDAP 信息访问 LDAP 目录,都要使用 logindn 和 loginpw 的值。有关更多信息,请参见smime.conf 文件的参数和使用证书访问 LDAP 中的公共密钥、CA 证书和 CRL。
如果访问 LDAP 目录时不需要进行验证,请勿设置 logindn 和 loginpw。
使用 configutil 设置 Messaging Server 选项:
local.webmail.smime.enable—设置为 1。
local.webmail.cert.enable—如果要根据 CRL 验证证书,则设置为 1。
有关更多信息,请参见Messaging Server 选项。
现在已将 Communications Express Mail 配置为可以使用 S/MIME 功能。请执行以下步骤验证 S/MIME 功能是否可以正常工作:
重新启动 Messaging Server。
检查 Messaging Server 日志文件 msg-svr-base/log/http,以了解与 S/MIME 相关的诊断消息。
如果检测到任何有关 S/MIME 的问题,则诊断消息将帮助您确定如何使用配置参数来解决这些问题。
更正必要的配置参数。
重复步骤 a. 到 d.,直至 Messaging Server 的日志文件中不再出现任何有关 S/MIME 的诊断消息。
执行以下步骤检查 S/MIME 功能是否可以正常工作:
从客户机上登录到 Messaging Server。用 "Yes" 或 "Always" 回答 S/MIME applet 的特定提示问题。请参见管理证书
撰写一条发送给您自己的短消息。
通过选中“撰写”窗口底部的“加密”复选框(如果尚未选中)来对消息进行加密。
单击“发送”以将加密消息发送给您自己。这将检验密钥和证书的大多数机制。
如果发现加密消息存在问题,则问题最有可能出在 smime.conf 文件中用于 LDAP 目录信息的值上和/或在 LDAP 目录中存储密钥和证书的方式上。请检查 Messaging Server 日志以获得更多诊断消息。
下表中总结的其他 S/MIME 参数提供了许多选项,您可以使用这些选项进一步配置 S/MIME 环境。有关这些参数的更多信息,请参见smime.conf 文件的参数。
S/MIME 必需的参数 |
用于智能卡和本地密钥库的参数 |
用于 CRL 检查的参数 |
用于初始设置和安全链路的参数 |
---|---|---|---|
certurl* |
platformwin |
checkoverssl |
alwaysencrypt |
logindn |
crlaccessfail |
alwayssign |
|
loginpw |
crldir |
sslrootcacertsurl |
|
trustedurl* |
crlenable | ||
usercertfilter* |
crlmappingurl | ||
crlurllogindn | |||
crlurlloginpw | |||
crlusepastnextupdate | |||
readsigncert | |||
revocationunknown | |||
sendencryptcert | |||
sendencryptcertrevoked | |||
readsigncert | |||
sendsigncertrevoked | |||
timestampdelta |
* 必须为这些参数指定值,因为它们都没有默认值。
S/MIME 所需的公共密钥、CA 证书和 CRL 可能存储在 LDAP 目录中(请参见上一节)。可以通过单个 URL 或多个 URL 访问 LDAP 中的密钥、证书和 CRL。例如,CRL 可能存储在某个 URL 中,而公共密钥和证书则存储在另一个 URL 中。Messaging Server 允许您指定哪个 URL 包含所需的 CRL 或证书信息,以及有权访问这些 URL 的条目的 DN 和密码。这些 DN/密码凭证都是可选的;如果未指定任何一个证书,则将首先尝试使用 HTTP 服务器证书访问 LDAP;如果失败,将尝试以 anonymous 访问 LDAP。
要访问所需的 URL,需要设置两对 smime.conf 凭证参数:logindn 和 loginpw,以及 crlurllogindn 和 crlurlloginpw。
在 smime.conf 中,logindn 和 loginpw 是用于所有 URL 的凭证。它们指定对公共密钥、公共密钥的证书和 CA 证书具有读权限的 LDAP 条目的 DN 和密码。这些密钥、密钥证书和 CA 证书由 certurl 和 trustedurl 参数指定。
crlurllogindn 和 crlurlloginpw 指定对映射表中的结果 URL 具有读权限的 LDAP 条目的 DN 和密码(有关更多信息,请参见访问 CRL)。如果这些证书未被接受,将拒绝 LDAP 访问并且不再尝试其他证书。要么同时指定这两个参数,要么两者都保留为空。这些参数不适用于直接来自证书的 URL。
Messaging Server 允许对 DN/密码对进行专门定义,以访问以下 smime.conf URL:certUrl、trustedUrl、crlmappingUrl、sslrootcacertsUrl。
语法如下:
url_type URL[ |URL_DN | URL_password]
示例:
trustedurl==ldap://mail.siroe.com:389/cn=Directory Manager, ou=people, o=siroe.com,o=ugroot?cacertificate?sub?(objectclass=certificationauthority) | cn=Directory manager | boomshakalaka |
本节总结了 LDAP 证书的用法。
所有 LDAP 凭证都是可选的;如果未指定任何一个凭证,将首先尝试使用 HTTP 服务器证书访问 LDAP;如果失败,将尝试以 anonymous 访问 LDAP。
可以将以下两对 smime.conf 参数用作指定的两组 URL 的证书:
logindn 和 loginpw—smime.conf 中的所有 URL
crlurllogindn 和 crlurlloginpw—映射表中的所有 URL
它们都是默认的 LDAP 证书对。
可以为 smime.conf 中指定的或通过映射 CRL URL 而得到的任何 URL 指定可选的本地 LDAP 凭证对。
将按照指定证书时的顺序来检查每个证书:
1) 本地 LDAP 证书对—如果指定,则只进行一次尝试
2) 默认 LDAP 证书对—如果指定并且没有本地 LDAP 证书对,则只进行一次尝试
3) 服务器—如果既没有指定本地 LDAP 证书对也没有指定默认 LDAP 证书对,则首先尝试服务器
4) anonymous—仅在服务器失败或没有指定任何证书的情况下才尝试使用 anonymous
如果为 URL 指定了本地 LDAP 证书对,则首先使用该证书对;如果访问失败,将拒绝访问。
如果没有为 URL 指定本地 LDAP 证书对,则使用对应的默认 LDAP 证书对;如果访问失败,将拒绝访问。