Sun Java System Messaging Server 6 2005Q4 管理指南

第 20 章 管理 Communications Express Mail 的 S/MIME

可在 Sun Java System Communications Express Mail 上使用安全/通用 Internet 邮件扩展 (Secure/Multipurpose Internet Mail Extension, S/MIME) 3.1。已设置为使用 S/MIME 的 Communications Express Mail 用户可以与 Communications Express Mail、Microsoft Outlook Express 和 Mozilla 邮件系统的其他用户交换签名邮件或加密邮件。

您可以在联机帮助中找到有关在 Communications Express Mail 中使用 S/MIME 的信息。本章说明了管理 S/MIME 的信息。本章包含以下几个部分:

什么是 S/MIME?

S/MIME 为 Communications Express Mail 用户提供以下功能:

用户需要了解的概念

要正确管理 S/MIME,您需要熟悉以下概念:

必需的软件和硬件组件

本节说明了将 Communications Express Mail 与 S/MIME 结合使用必需的硬件和软件。尝试针对 S/MIME 进行配置之前,请确保已在服务器和客户机上安装了所有正确版本的软件。

表 20–1 列出了要在客户机中访问 Communications Express Mail 所需的软件和硬件。

表 20–1 客户机必需的硬件和软件

组件 

说明 

操作系统 

  • Microsoft Windows 98、2000 或 XP

浏览器 

  • Windows 上的 Microsoft Internet Explorer,版本 6 SP2

  • Windows 2000 和 Windows 98 上的 Microsoft Internet Explorer,版本 6 SP1(具有 2004 年 12 月 1 日发布的最新修补程序)

Sun 软件 

Sun Java 2 Runtime Environment, Standard Edition, 版本 1.4.2_03 或更高版本,但不能是 1.5 版 

具有证书的专用-公共密钥 

一个或多个具有证书的专用-公共密钥对。需要使用证书,而且证书必须为标准的 X.509 v3 格式。从 CA 为将要使用 S/MIME 功能的每个 Communications Express Mail 用户获取密钥和证书。密钥及其证书存储在客户机或智能卡中。公共密钥和证书还存储在 Directory Server 可以访问的 LDAP 目录中。 

如果要根据证书撤销列表 (CRL) 检查密钥证书以进一步确保密钥是有效的,则由 CA 维护的证书撤销列表必须是系统的一部分。请参见何时根据 CRL 检查证书?

智能卡软件(仅当密钥和证书存储在智能卡中时才需要) 

  • ActivCard Gold,版本 2.1 或 3.0,或

  • NetSign,版本 3.1

智能卡阅读器 

客户机和智能卡软件支持的任何型号的智能卡阅读设备。 

表 20–2 列出了服务器所需的 Sun Microsystems 软件。

表 20–2 服务器必需的软件

Sun 组件 

说明 

邮件服务器 

针对 Solaris 版本 8 或 9 以及 Sun SPARC 计算机发行的 Sun Java System Messaging Server 6 2005Q4 

LDAP 服务器 

Sun Java System Directory Server 5 2004Q2 

Java 

Java 2 Runtime Environment,Standard Edition,版本 1.4.2 或更高版本 

Access Manager 

(如果是在 Schema 2 下进行部署)—Sun Java System Access Manager 6 2005Q1 和 Communications Express(Sun Java System Communications Express 6 2005Q1 或更高版本)。 

使用 S/MIME 的要求

安装 Messaging Server 后,Communications Express Mail 用户并不能立即使用签名和加密功能。用户必须满足本节所说明的要求才能使用 S/MIME。

专用密钥和公共密钥

必须为将要使用 S/MIME 的每个 Communications Express Mail 用户至少发布一个包括标准 X.509 v3 格式证书的专用和公共密钥对。验证过程所使用的证书可以向其他邮件用户保证密钥确实属于使用密钥的用户。用户可以拥有多个密钥对及相关证书。

密钥及其证书可以由您的组织发布,也可以从第三方供应商处购买。无论密钥和证书是如何发布的,发布组织均被称为证书授权机构 (CA)。

密钥对及其证书以两种方式进行存储:

存储在智能卡中的密钥

如果专用-公共密钥对及其证书存储在智能卡中,则必须将读卡器正确连接至邮件用户的计算机。读卡设备也需要软件;读卡设备及其软件由出售该设备的供应商提供。

正确安装读卡设备后,如果邮件用户要为外发邮件创建数字签名,则需要将智能卡插入读卡设备中。验证完智能卡密码后,Communications Express Mail 就可以使用专用密钥来对邮件进行签名了。有关支持的智能卡和读卡设备的信息,请参见必需的软件和硬件组件

用户计算机上应具有智能卡供应商提供的库。有关更多信息,请参见客户机的密钥访问库

存储在客户机中的密钥

如果未将密钥对和证书存储在智能卡中,则必须将它们保存在邮件用户计算机(客户机)的本地密钥库中。邮件用户计算机的浏览器提供密钥库并提供将密钥对和证书下载到密钥库的命令。密钥库可能受密码保护,这取决于浏览器。

用户计算机上应具有浏览器供应商提供的库以支持本地密钥库。有关更多信息,请参见客户机的密钥访问库

在 LDAP 目录中发布公共密钥

还必须将所有公共密钥和证书存储到 LDAP 目录中,以便于 Sun Java System Directory Server 访问。这也称为发布公共密钥,从而使其他正在创建 S/MIME 邮件的邮件用户可以使用这些公共密钥。

发件人和收件人的公共密钥用于加密邮件的加密-解密过程。公共密钥证书用于验证数字签名所使用的专用密钥。

有关使用 ldapmodify 来发布公共密钥和证书的更多信息,请参见管理证书

授予邮件用户使用 S/MIME 的权限

要创建签名或加密邮件,有效的 Communications Express Mail 用户必须具有相应的权限。这涉及在用户的 LDAP 条目中使用 mailAllowedServiceAccessmailDomainAllowedServiceAccess LDAP 属性。可以使用这些属性以个人或域为基础允许或不允许邮件用户使用 S/MIME。

有关更多信息,请参见授予使用 S/MIME 功能的权限

多语言支持

只使用英语作为邮件语言的 Communications Express Mail 用户可能无法阅读包含非拉丁语言字符(例如中文)的 S/MIME 邮件。出现这种情况的原因之一是:安装在用户计算机上的 Java 2 Runtime Environment (JRE) 的 /lib 目录中没有 charsets.jar 文件。

如果使用默认的 JRE 安装过程下载了英语版本的 JRE,则不会安装 charsets.jar 文件。但是,其他语言版本的默认安装过程都会安装 charsets.jar

要确保在 /lib 目录中安装 charsets.jar 文件,请提醒用户使用自定义安装来安装英语版本的 JRE。在安装过程中,用户必须选择“支持其他语言”选项。

安装 Messaging Server 后开始使用

本节说明了什么是 S/MIME applet,并提供了为 Communications Express Mail 设置 S/MIME 的基本配置过程。该配置过程包括设置 S/MIME applet 的参数及 Messaging Server 的选项。

S/MIME Applet

对邮件进行签名、加密或解密的过程以及验证专用和公共密钥的各个步骤都由一个特殊的 applet 来处理,该 applet 称为 S/MIME applet。可以通过 smime.conf 文件中的参数和 Messaging Server 选项来配置 S/MIME 功能。图 20–1 显示了 S/MIME Applet 与其他系统组件的关系。

图 20–1 S/MIME Applet

图形显示了 S/MIME applet 与其他系统组件的关系。

首次登录

具有使用 S/MIME 权限的 Communications Express Mail 用户首次登录到 Messaging Server 时,系统将显示有关 S/MIME applet 的一系列特定提示。用 "Yes" 或 "Always" 回答完提示问题后,S/MIME applet 即被下载到计算机中。此 applet 将始终保留在计算机中,直至注销 Communications Express Mail。

有关更多信息,请参阅管理证书

下载 S/MIME Applet

用户每次登录 Communications Express Mail 时都将下载 S/MIME Applet,除非在用户计算机上针对 Java 2 Runtime Environment (JRE) 启用了高速缓存。启用高速缓存后,S/MIME Applet 的副本会在首次下载之后保存在用户计算机上,这样,用户就不必每次登录时都下载此 Applet。

高速缓存可以提高性能,您可以指导用户执行以下步骤来针对 Java 2 Runtime Environment 版本 1.4.x 启用高速缓存:

Procedure针对 Java 2 Runtime Environment 版本 1.4 启用高速缓存

步骤
  1. 转至 Windows 控制面板。

  2. 双击“Java Plug-in”图标 (Java 2 Runtime Environment)。

  3. 单击“高速缓存”选项卡。

  4. 选中“启用高速缓存”复选框。

  5. 单击“应用”。

    下载之后,用户不会感觉到 S/MIME applet 的存在。而看起来似乎是 Communications Express Mail 在对邮件进行签名、加密或解密。如果不弹出错误消息,用户也感觉不到验证专用或公共密钥的过程。有关更多信息,请参阅验证专用密钥和公共密钥

基本的 S/MIME 配置

S/MIME 的配置文件 smime.conf 包含每个 S/MIME 参数的描述性注释和示例。Messaging Server 附带有 smime.conf 文件,该文件位于目录 msg-svr-base/config/ 中,其中 msg-svr-base 是安装 Messaging Server 的目录。

以下过程包含配置 S/MIME 功能必需的最少步骤:

Procedure配置 S/MIME

步骤
  1. 安装 Messaging Server 之后,验证 Communications Express Mail 的基本功能是否可以正常工作。

  2. 如果尚未执行此操作,请为有权使用 S/MIME 功能的所有邮件用户创建或获取专用-公共密钥对和标准 X.509 v3 格式的证书。

  3. 如果使用智能卡存储密钥和证书,则请执行以下操作:

    1. 将智能卡分发到邮件用户。

    2. 确保已在从中访问 Communications Express Mail 的每台客户机上正确地安装了智能卡读卡设备和软件。

  4. 如果使用浏览器的本地密钥库存储密钥和证书,请指导邮件用户如何将密钥对和证书下载到本地密钥库。

  5. 确保客户机上具有正确的库,以支持智能卡或本地密钥库。请参见客户机的密钥访问库

  6. 设置 LDAP 目录以支持 S/MIME:

    1. 使用证书授权机构的标识名将 CA 的所有证书存储在 Directory Server 可以访问的 LDAP 目录中。这些证书的 LDAP 属性为 cacertificate;binary。请记下存储这些内容的目录信息。在后面的步骤中将用到这些信息。

      有关指定 LDAP 目录信息的示例,请参见表 20–3 中的 trustedurl;有关搜索 LDAP 目录的信息,请参见管理证书

    2. 在 Directory Server 可以访问的 LDAP 目录中存储公共密钥和证书。公共密钥和证书的 LDAP 属性为 usercertificate;binary。请记下存储这些内容的目录信息。在后面的步骤中将用到这些信息。

      有关指定 LDAP 目录信息的示例,请参见表 20–3 中的 certurl;有关搜索 LDAP 目录的信息,请参见管理证书

    3. 确保发送或接收 S/MIME 邮件的所有用户都可以通过其用户条目中的 LDAP 过滤器使用 S/MIME。过滤器是通过 mailAllowedServiceAccessmailDomainAllowedServiceAccess LDAP 属性来定义的。

      注释:默认情况下,如果未使用 mailAllowedServiceAccessmailDomainAllowedServiceAccess,则将允许所有包括 smime 的服务。如果要使用这些属性明确指定服务,则必须指定服务 httpsmtpsmime,以授予邮件用户使用 S/MIME 功能的权限。

      有关更多信息,请参见授予使用 S/MIME 功能的权限

  7. 用任何可用的文本编辑器来编辑 smime.conf 文件。有关参数的语法,请参见文件开头的注释。

    smime.conf 中的所有文本和示例参数前面都带有注释字符 (#)。可以将所需参数添加到 smime.conf 中,或将参数示例复制到文件的其他部分并更改参数示例的值。如果要复制并编辑示例,请确保删除示例行开头的 # 字符。

    将这些参数添加到文件中各自对应的行中:

    1. trustedurl(请参见表 20–3)—设置为 LDAP 目录信息,以查找 CA 的证书。使用在步骤 a 中保存的信息。

    2. certurl表 20–3)—设置为 LDAP 目录信息,以查找公共密钥和证书。使用在步骤 b 中保存的信息。

    3. usersertfilter(请参见表 20–3)—设置为 smime.conf 文件中的示例的值。该示例值通常都是指必需的过滤器。复制示例并删除示例行开头的 # 字符。

      该参数指定 Communications Express Mail 用户的主、备用和等效电子邮件地址的过滤器定义,以确保在将用户的专用-公共密钥对分配给其他邮件地址时可以找到这些密钥对。

    4. 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

    5. crlenable(请参见表 20–3)—设置为 0 将立即禁用 CRL 检查,因为执行 CRL 检查可能会要求向 smime.conf 文件添加其他参数。

    6. logindnloginpw表 20–3)—如果需要进行验证才能访问包含公共密钥和 CA 证书的 LDAP 目录,则请将这些参数设置为具有读权限的 LDAP 条目的标识名和密码。

      注释:无论何时使用由 crlmappingurlsslrootcacertsurltrustedurl 参数指定的 LDAP 信息访问 LDAP 目录,都要使用 logindnloginpw 的值。有关更多信息,请参见smime.conf 文件的参数使用证书访问 LDAP 中的公共密钥、CA 证书和 CRL

      如果访问 LDAP 目录时不需要进行验证,请勿设置 logindnloginpw

  8. 使用 configutil 设置 Messaging Server 选项:

    1. local.webmail.smime.enable—设置为 1

    2. local.webmail.cert.enable—如果要根据 CRL 验证证书,则设置为 1

      有关更多信息,请参见Messaging Server 选项

  9. 现在已将 Communications Express Mail 配置为可以使用 S/MIME 功能。请执行以下步骤验证 S/MIME 功能是否可以正常工作:

    1. 重新启动 Messaging Server。

    2. 检查 Messaging Server 日志文件 msg-svr-base/log/http,以了解与 S/MIME 相关的诊断消息。

    3. 如果检测到任何有关 S/MIME 的问题,则诊断消息将帮助您确定如何使用配置参数来解决这些问题。

    4. 更正必要的配置参数。

    5. 重复步骤 a. 到 d.,直至 Messaging Server 的日志文件中不再出现任何有关 S/MIME 的诊断消息。

    6. 执行以下步骤检查 S/MIME 功能是否可以正常工作:

      1. 从客户机上登录到 Messaging Server。用 "Yes" 或 "Always" 回答 S/MIME applet 的特定提示问题。请参见管理证书

      2. 撰写一条发送给您自己的短消息。

      3. 通过选中“撰写”窗口底部的“加密”复选框(如果尚未选中)来对消息进行加密。

      4. 单击“发送”以将加密消息发送给您自己。这将检验密钥和证书的大多数机制。

      5. 如果发现加密消息存在问题,则问题最有可能出在 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 

         

        * 必须为这些参数指定值,因为它们都没有默认值。

使用证书访问 LDAP 中的公共密钥、CA 证书和 CRL

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 凭证参数:logindnloginpw,以及 crlurllogindncrlurlloginpw

smime.conf 中,logindnloginpw 是用于所有 URL 的凭证。它们指定对公共密钥、公共密钥的证书和 CA 证书具有读权限的 LDAP 条目的 DN 和密码。这些密钥、密钥证书和 CA 证书由 certurltrustedurl 参数指定。

crlurllogindncrlurlloginpw 指定对映射表中的结果 URL 具有读权限的 LDAP 条目的 DN 和密码(有关更多信息,请参见访问 CRL)。如果这些证书未被接受,将拒绝 LDAP 访问并且不再尝试其他证书。要么同时指定这两个参数,要么两者都保留为空。这些参数不适用于直接来自证书的 URL。

设置特定 URL 的密码

Messaging Server 允许对 DN/密码对进行专门定义,以访问以下 smime.conf URL:certUrltrustedUrlcrlmappingUrlsslrootcacertsUrl

语法如下:

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 证书的用法。

smime.conf 文件的参数

Messaging Server 附带有 smime.conf 文件,该文件位于目录 msg-svr-base/config/ 中,其中 msg-svr-base 是安装 Messaging Server 的目录。该文件中的所有文本和参数示例前面都带有注释字符 (#)。

您可以将保存您设置的值的参数添加到 smime.conf 文件中,也可以编辑参数示例。如果要使用示例,请将示例复制到该文件的其他部分,编辑参数的值并删除示例行开头的 # 字符。

安装 Messaging Server 后,用任何可用的文本编辑器编辑 smime.conf表 20–3 中所描述的参数不区分大小写,而且如果没有特殊说明,不需要进行设置。

表 20–3 smime.conf 文件中的 S/MIME 配置参数

参数 

用途 

alwaysencrypt

控制初始设置,以决定是否为有权使用 S/MIME 的所有 Communications Express Mail 用户自动加密所有外发邮件。每个 Communications Express Mail 用户都可以通过使用表 20–5 中所述的复选框来覆盖用于他们邮件的这一参数值。

选择以下值之一: 

0—不对邮件进行加密。Communications Express Mail 中的加密复选框显示为未选中状态。该值为默认值。

1—始终对邮件进行加密。Communications Express Mail 中的加密复选框显示为选中状态。

示例: 

alwaysencrypt==1

alwayssign

控制初始设置,以决定是否为有权使用 S/MIME 的所有 Communications Express Mail 用户自动签名所有外发邮件。每个 Communications Express Mail 用户都可以通过使用表 20–5 中所述的复选框来覆盖用于他们邮件的这一参数值。

选择以下值之一: 

0—不对消息进行签名。Communications Express Mail 中的签名复选框显示为未选中状态。该值为默认值。

1—始终对消息进行签名。Communications Express Mail 中的签名复选框显示为选中状态。

示例: 

alwaysensign==1

certurl

指定 LDAP 目录信息,以查找 Communications Express Mail 用户的公共密钥和证书(公共密钥的 LDAP 属性为 usercertificate;binary)。有关证书的更多信息,请参见管理证书

该参数必须指向 LDAP 目录信息树 (DIT) 的用户/组中的最高节点,DIT 包括 Messaging Server 正在服务的所有用户。这对具有多个域的站点来说尤其重要;对于单域来说,标识名必须是用户/组树的根标识名而不是包含用户的子树的标识名。 

您必须设置该参数。 

示例: 

certurl==ldap://mail.siroe.com:389/ou=people,o=siroe.com,o=ugroot

checkoverssl

根据 CRL 检查密钥的证书时,控制是否使用 SSL 通信链路。有关更多信息,请参见使用 SSL 确保 Internet 链路的安全

选择以下值之一: 

0—不使用 SSL 通信链路。

1—使用 SSL 通信链路。该值为默认值。

如果将代理服务器与正在进行的 CRL 检查结合使用,则可能会出现问题。请参见代理服务器和 CRL 检查

crlaccessfail 

指定 Messaging Server 多次尝试访问 CRL 失败后等待下一次尝试访问 CRL 的时间。该参数没有默认值。 

语法:

crlaccessfail==number_of_failures:time_period_for_failures:wait_time_before_retry

其中: 

number_of_failures 是在 time_period_for_failures 指定的时间间隔中,允许 Messaging Server 访问 CRL 失败的次数。该值必须大于零。

time_period_for_failures 是 Messaging Server 对访问 CRL 的尝试的失败进行计数的时间段。该值必须大于零。

wait_time_before_retry 是 Messaging Server 在指定时间间隔内达到尝试访问失败次数的限制而要再次尝试访问 CRL 所需等待的秒数。该值必须大于零。

示例: 

crlaccessfail==10:60:300

在该示例中,Messaging Server 在 1 分钟内访问 CRL 时出现了 10 次失败。Messaging Server 在等待 5 分钟后再次尝试访问 CRL。请参见访问 CRL 时出现问题

crldir

指定 Messaging Server 将 CRL 下载到磁盘的目录信息。默认值为 msg-svr-base/data/store/mboxlist,其中 msg-svr-base 是安装 Messaging Server 的目录。有关更多信息,请参见使用过时 CRL

crlenable

控制是否根据 CRL 检查证书。如果存在匹配项,则证书将被视为已撤销。smime.conf 文件中的 send*revoked 参数的值确定 Communications Express Mail 是拒绝还是使用具有已撤销证书的密钥。有关更多信息,请参见验证专用密钥和公共密钥

选择以下值之一: 

0—不根据 CRL 检查每个证书。

1—根据 CRL 检查每个证书。该值为默认值。请确保将 Messaging Server 的 local.webmail.cert.enable 选项设置为 1,否则即使将 crlenable 设置为 1 也不会进行 CRL 检查。

crlmappingurl

指定 LDAP 目录信息以查找 CRL 映射定义。仅在具有映射定义时才需要该参数。有关更多信息,请参见访问 CRL。您可以选择添加能够访问该 URL 的 DN 和密码。

语法: 

crlmappingurl URL [|URL_DN | URL_password ]

示例: 


crlmappingurl==ldap://mail.siroe.com:389/cn=XYZ Messaging, 
ou=people, o=mail.siroe.com,o=isp?msgCRLMappingRecord?sub?(
objectclass=msgCRLMappingTable) | cn=Directory Manager | pAsSwOrD

crlurllogindn

指定对 CRL 映射定义具有读权限的 LDAP 条目的标识名(如果条目直接来自证书,则不需要指定。有关更多信息,请参见第 904 页中的“访问 CRL”)。 

如果未指定 crllogindncrlloginpw 的值,则 Messaging Server 将使用 HTTP 服务器的登录值来访问 LDAP 目录。如果失败,Messaging Server 将尝试匿名访问 LDAP 目录。

示例: 

crllogindn==cn=Directory Manager

crlurlloginpw

针对 crllogindn 参数的标识名指定 ASCII 文本格式的密码。

如果未指定 crllogindncrlloginpw 的值,则 Messaging Server 将使用 HTTP 服务器的登录值来访问 LDAP 目录。如果失败,Messaging Server 将尝试匿名访问 LDAP 目录。

示例: 

crlloginpw==zippy

crlusepastnextupdate

控制在当前日期超过了 CRL 的“下一次更新”字段中指定的日期时是否使用 CRL。有关更多信息,请参见使用过时 CRL

选择以下值之一: 

0—不使用过时的 CRL。

1—使用过时的 CRL。该值为默认值。

logindn

指定对 LDAP 目录中的公共密钥、公共密钥的证书和 CA 证书具有读权限的 LDAP 条目的标识名。这些密钥、密钥证书和 CA 证书位于由 certurltrustedurl 参数指定的 LDAP 目录中。

如果未指定 logindnloginpw 的值,则 Messaging Server 将使用 HTTP 服务器的登录值来访问 LDAP 目录。如果失败,Messaging Server 将尝试匿名访问 LDAP 目录。

示例: 

logindn==cn=Directory Manager

loginpw

针对 logindn 参数的标识名指定 ASCII 文本格式的密码。

如果未指定 logindnloginpw 的值,则 Messaging Server 将使用 HTTP 服务器的登录值来访问 LDAP 目录。如果失败,Messaging Server 将尝试匿名访问 LDAP 目录。

示例: 

loginpw==SkyKing

platformwin

指定在 Windows 平台上使用智能卡或本地密钥库时必需的一个或多个库名称。仅在默认值不适用于您的客户机时才更改该参数。默认值为: 

platformwin==CAPI:library=capibridge.dll;

有关更多信息,请参见客户机的密钥访问库

readsigncert

控制在阅读邮件时是否根据 CRL 检查公共密钥的证书以验证 S/MIME 数字签名。(专用密钥用于创建邮件的数字签名,但是不能根据 CRL 对其进行检查,因而要根据 CRL 检查与专用密钥相关联的公共密钥的证书。)请参见验证专用密钥和公共密钥

选择以下值之一: 

0—不根据 CRL 检查证书。

1—根据 CRL 检查证书。该值为默认值。

revocationunknown

确定在根据 CRL 检查证书时返回模糊状态的情况下应采取的措施。在这种情况下,无法确定证书的状态为有效还是已撤销。有关更多信息,请参见验证专用密钥和公共密钥

选择以下值之一: 

ok—将证书视为有效证书。

revoked—将证书视为撤销证书。该值为默认值。

sendencryptcert

控制用于加密外发邮件的公共密钥的证书在使用之前是否根据 CRL 进行检查。请参见验证专用密钥和公共密钥

选择以下值之一: 

0—不根据 CRL 检查证书。

1—根据 CRL 检查证书。该值为默认值。

sendencryptcertrevoked

确定当用于加密外发邮件的公共密钥证书已撤销时应采取的措施。有关更多信息,请参见验证专用密钥和公共密钥

选择以下值之一: 

allow—使用公共密钥。

disallow—不使用公共密钥。该值为默认值。

sendsigncert 

控制是否根据 CRL 检查公共密钥证书,从而确定是否可以将专用密钥用于为传出邮件创建数字签名。(专用密钥用于数字签名,但是不能根据 CRL 对其进行检查,因而要根据 CRL 检查与专用密钥相关联的公共密钥的证书。)有关更多信息,请参见验证专用密钥和公共密钥

选择以下值之一: 

0—不根据 CRL 检查证书。

1—根据 CRL 检查证书。该值为默认值。

sendsigncertrevoked

确定专用密钥已撤销时应采取的措施。(专用密钥用于创建邮件的数字签名,但是不能根据 CRL 对其进行检查,因而要根据 CRL 检查与专用密钥相关的公共密钥的证书。如果公共密钥证书已撤销,则其对应的专用密钥也将撤销。)有关更多信息,请参见验证专用密钥和公共密钥

选择以下值之一: 

allow—使用撤销的专用密钥。

disallow—不使用撤销的专用密钥。该值为默认值。

sslrootcacertsurl

指定标识名和 LDAP 目录信息以查找有效 CA 的证书,这些证书用于验证 Messaging Server 的 SSL 证书。如果在 Messaging Server 中启用了 SSL,则该参数为必需参数。有关更多信息,请参见使用 SSL 确保 Internet 链路的安全

如果具有接收来自客户机应用程序的所有请求的代理服务器的 SSL 证书,则这些 SSL 证书的 CA 证书也必须位于该参数所指向的 LDAP 目录中。 

您也可以选择添加能够访问该 URL 的 DN 和密码。 

语法: 

crlmappingurl URL [|URL_DN | URL_password ]

示例: 


sslrootcacertsurl==ldap://mail.siroe.com:389/cn=SSL Root CA 
Certs,ou=people,o=siroe.com,o=isp? cacertificate;binary?base?
(objectclass=certificationauthority)|cn=Directory Manager | 
pAsSwOrD

timestampdelta

以秒为单位指定时间间隔,该时间间隔用于确定根据 CRL 检查公共密钥的证书时是使用邮件的发送时间还是接收时间。 

该参数的默认值为零,这将使 Communications Express Mail 始终使用接收时间。有关更多信息,请参见确定要使用的邮件发送时间

示例: 

timestampdelta==360

trustedurl

指定标识名和 LDAP 目录信息以查找有效 CA 的证书。该参数为必需参数。 

您也可以选择添加能够访问该 URL 的 DN 和密码。 

语法: 

crlmappingurl 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 
| pAsSwOrD

 

usercertfilter

指定 Communications Express Mail 用户的主、备用和等效电子邮件地址的过滤器定义,以确保将用户的专用-公共密钥对分配给其他邮件地址时可以找到这些密钥对。 

该参数为必需参数,并且没有默认值。 

Messaging Server 选项

要设置适用于 S/MIME 的三个 Messaging Server 选项,请在安装 Messaging Server 的计算机上执行以下操作。

Procedure设置适用于 S/MIME 的 Messaging Server 选项

步骤
  1. 以超级用户身份登录。然后输入:


    # cd msg-svr-base/sbin

    其中,msg-svr-base 是安装 Messaging Server 的目录。

  2. 按照下表所述并根据系统需要来设置 Messaging Server 选项。使用 configutil 实用程序来设置这些选项。如果没有特殊说明,则不需要对选项进行设置。

    参数 

    用途 

    local.webmail.cert.enable

    控制处理 CRL 检查的进程是否应执行 CRL 检查。 

    0—进程不根据 CRL 检查证书。该值为默认值。

    1—进程根据 CRL 检查证书。如果设置为 1,请确保将 smime.conf 文件中的 crlenable 参数也设置为 1

    local.webmail.cert.port

    指定运行 Messaging Server 的计算机上的端口号,以用于 CRL 通信。只能在该计算机本地使用该端口。该值必须大于 1024。默认值为 55443

    如果默认端口号已被占用,则必须设置该选项。 

    local.webmail.smime.enable

    控制 Communications Express Mail 用户是否可以使用 S/MIME 功能。选择以下值之一: 

    0—即使为系统配置了正确的软件和硬件,Communications Express Mail 用户也无法使用 S/MIME 功能。该值为默认值。

    1—有权使用 S/MIME 功能的 Communications Express Mail 用户可以使用 S/MIME 功能。

    示例: 

    configutil -o local.webmail.smime.enable -v 1

使用 SSL 确保 Internet 链路的安全

Messaging Server 支持使用用于 Internet 链路的安全套接字层 (SSL)(Internet 链路会影响 Communications Express Mail),如下表所示。

链接对象: 

说明 

Messaging Server 和 Communications Express Mail 

要使用 SSL 确保该链路的安全,需要进行有关 Messaging Server 的管理工作。Communications Express Mail 用户在其浏览器中输入 Messaging Server 的 URL 信息时,必须使用 HTTPS 协议,而不是 HTTP 协议。 

请参见确保 Messaging Server 和 Communications Express Mail 之间的链路的安全

Messaging Server 和 S/MIME applet 

根据 CRL 检查公共密钥证书时,S/MIME applet 必须直接与 Messaging Server 进行通信。要使用 SSL 确保该链路的安全,除了设置 smime.conf 文件中的 sslrootcacertsurlcheckoverssl 之外,还需要进行有关 Messaging Server 的管理工作。

请参见确保 Messaging Server 和 S/MIME Applet 之间的链路的安全

确保 Messaging Server 和 Communications Express Mail 之间的链路的安全

Messaging Server 支持使用用于 Messaging Server 和 Communications Express Mail 之间的 Internet 链路的安全套接字层 (SSL)。在设置 Messaging Server 以使用 SSL 之后,请配置 Communications Express 以使用 SSL。请参见《Sun Java System Communications Express 6 2005Q4 管理指南》。Communications Express Mail 用户在其浏览器中使用 HTTPS 协议指定 Communications Express URL:

HTTPS://hostname.domain:secured_port

而不是 HTTP 协议 (HTTP://hostname.domain:unsecure_port) 来指定 Communications Express URL。显示 Communications Express 登录窗口时,如果用户看到窗口底部的锁定位置有锁形图标,则说明系统具有安全链路。

有关适用于 Messaging Server 的 SSL 配置信息,请参见配置加密和基于证书的验证

确保 Messaging Server 和 S/MIME Applet 之间的链路的安全

根据 CRL 检查公共密钥的证书时,S/MIME applet 必须直接与 Messaging Server 进行通信。

Procedure使用 SSL 确保通信链路的安全

步骤
  1. 执行管理任务来为 Messaging Server 配置 SSL。请参见配置加密和基于证书的验证

  2. 设置 smime.conf 文件中的 sslrootcacertsurl 参数,以指定查找根 SSL CA 证书的信息。如果在 Messaging Server 和 S/MIME Applet 之间建立了链路,则将使用这些 CA 证书来验证 Messaging Server 的 SSL 证书。

  3. smime.conf 文件中的 checkoverssl 参数设置为 1。该 Messaging Server 选项用于确定是否将 SSL 用于 Messaging Server 和 S/MIME applet 之间的链路。无论 Communications Express Mail 用户以何种方式指定 Messenger Server 的 URL(HTTPHTTPS),只要将 checkoverssl 设置为 1,SSL 就可以确保 Messaging Server 和 S/MIME Applet 之间的链路的安全。


    注 –

    在 Messaging Server 和客户机应用程序(例如 Communications Express Mail)之间可以使用代理服务器。有关使用具有或不具有安全通信链路的代理服务器的更多信息,请参见代理服务器和 CRL 检查


客户机的密钥访问库

无论邮件用户将专用-公共密钥对和证书保存在智能卡上还是保存在其浏览器的本地密钥库中,客户机上都必须具有密钥访问库才能支持存储方法。

这些库由智能卡和浏览器的供应商提供。您必须确保客户机上具有正确的库,并用 smime.conf 文件中正确的平台参数指定库名称。参数选项包括:

如果您知道客户机上安装了哪些库,则可以只指定这些库;如果不确定客户机上安装了哪些库,则可以指定用于给定平台和供应商的所有库名称。如果 S/MIME applet 在您指定的库名称中找不到必需的库,则将无法使用 S/MIME 功能。

指定一个或多个库文件名的语法如下:

platform_parameter==vendor:library=library_name;...

其中:

platorm_parameter 是访问 Communications Express Mail 的客户机平台的参数名称。选择以下名称之一:platformwin

vendor 指定智能卡或浏览器的供应商。选择以下名称之一:

cac(适用于 ActivCard 或 NetSign 智能卡)

capi(适用于具有 CAPI 的 Internet Explorer)

mozilla(适用于具有网络安全服务的 Mozilla)

library_name 指定库文件名。有关供应商和操作系统的库名称,请参见表 20–4

表 20–4 客户机中的特殊库

智能卡或浏览器供应商 

操作系统 

库文件名 

 

Windows 

acpkcs211.dll

具有加密应用程序编程接口 (CAPI) 的 Internet Explorer 

Windows 

capibridge.dll

 

Windows 

softokn3.dll

 

Windows 

core32.dll 

示例

以下示例为 Windows 平台指定了一个智能卡库、一个 Internet Explorer 库和一个 Mozilla 库:

platformwin==CAC:library=acpkcs211.dll;CAPI:library=capibridge.dll;
MOZILLA:library=softokn3.dll;

验证专用密钥和公共密钥

在 Communications Express Mail 使用专用密钥或公共密钥之前,必须先通过图 20–2 所示的验证测试。本节其余部分将介绍根据 CRL 检查公共密钥的证书的详细信息。

图 20–2 验证专用密钥和公共密钥。

该图形显示了用于验证专用密钥和公共密钥的流程。

查找用户的专用或公共密钥

当 Communications Express Mail 用户具有多个专用-公共密钥对和多个电子邮件地址(主电子邮件地址、备用电子邮件地址或别名电子邮件地址)时,这些密钥可能会与多个地址相关联。在这种情况下,S/MIME applet 必须找到所有密钥以进行验证。使用 smime.conf 文件中的 usercertfilter 参数来定义过滤器,该过滤器将在根据 CRL 检查公共密钥的证书时为密钥的拥有者创建一个邮件地址列表。有关更多信息,请参见smime.conf 文件的参数中的 usercerfilter

何时根据 CRL 检查证书?

证书撤销列表(即 CRL)是发布密钥对和证书的 CA 所维护的已撤销证书的列表。启用 CRL 检查时,只要发出了查看证书是否已撤销的证书请求,就会使系统检查 CRL。

当将 smime.conf 文件中的 crlenable 设置为 1 时,将在找到未过期密钥后执行 CRL 测试。将根据 CRL 检查公共密钥的证书。每个 CA 只能有一个 CRL,但是同一个 CRL 可以放在多个不同的位置上。

当 S/MIME applet 向 Messaging Server 发送检查证书的请求后,Messaging Server 将根据 CRL 检查证书。公共密钥证书用于验证公共密钥。由于专用密钥是保密的,只能由拥有该密钥的人员使用,因此不能根据 CRL 直接检查专用密钥。要确定专用密钥是否有效,需要使用密钥对的公共密钥证书。当公共密钥的证书通过 CRL 测试时,关联的专用密钥也就通过了该测试。

导致证书撤销的原因有很多,例如,证书的拥有者已离开您的工作单位或丢失了智能卡。

在下列三种情况下需要根据 CRL 检查证书:

访问 CRL

一个证书包含零个或多个 URL(称为分发点),Messaging Server 使用这些 URL 来查找 CRL。如果证书没有 CRL URL,则不能根据 CRL 检查该证书,并且会在不知道密钥真实状态的情况下使用专用或公共密钥对邮件进行签名或加密。

如果 Messaging Server 在尝试所有可用的 URL 后都无法查找 CRL 或无法获得对 CRL 的访问权,证书的状态将被视为未知。将由 revocationunknown 的设置来确定是否使用处于未知状态的专用或公共密钥。

尽管每个 CA 只能有一个 CRL,但可以在多个位置保存同一个 CRL 的多个副本,因而用户的公共密钥证书对应多个 URL。Messaging Server 将尝试证书的所有 URL 位置,直到获得对 CRL 的访问权。

通过定期从 CA 将最新的 CRL 下载到所需位置,您可以管理 CRL 的多个副本从而优化访问。尽管您无法更改证书中嵌入的 URL,但您可以通过将证书中的 URL 映射到包含 CRL 信息的新 URL,来重新定位 Messaging Server 以使用新的 CRL 位置。请使用下面的语法在 LDAP 目录(请参见表 20–3 中的 crlmappingurl)中创建一个或多个映射定义的列表:


msgCRLMappingRecord=url_in_certificate==new_url[|url_login_DN|url_login_password]

url_in_certificate 是证书中包含旧信息的 URL,这些信息用来查找 CRL。new_url 是包含新 CRL 信息的新 URL。url_login_DNurl_login_password 是允许访问 new_url 的条目的 DN 和密码。这两个选项都是可选项,如果指定了这两个选项,将仅用于访问新的 URL。

如果 DN 和密码验证失败,将拒绝 LDAP 访问并且不再尝试其他证书。这些登录证书仅对 LDAP URL 有效。如果使用了 smmime.conf 中的 crlurllogindncrlurlloginpw,则无需在映射记录中指定登录 DN 和密码。请参见使用证书访问 LDAP 中的公共密钥、CA 证书和 CRL

仅允许使用一层映射。可以将证书中各个不同的 URL 映射到同一个新 URL,但您不能将证书 URL 分配给多个新 URL。例如,以下映射列表就是一个无效映射列表:

msgCRLMappingRecord=URL12==URL45
msgCRLMappingRecord=URL12==URL66
msgCRLMappingRecord=URL12==URL88
msgCRLMappingRecord=URL20==URL90
msgCRLMappingRecord=URL20==URL93

以下示例是正确的映射列表:

msgCRLMappingRecord=URL12==URL45
msgCRLMappingRecord=URL14==URL66
msgCRLMappingRecord=URL88==URL66
msgCRLMappingRecord=URL201==URL90
msgCRLMappingRecord=URL202==URL93

在 LDAP 目录中创建映射定义后,请使用 smime.conf 文件中的 crlmappingurl 指定查找这些映射定义的目录信息。请参见smime.conf 文件的参数

代理服务器和 CRL 检查

如果您的系统在客户端应用程序和 Messaging Server 之间使用了代理服务器,那么,尽管您已正确配置了 S/MIME Applet 来执行 CRL 检查,系统仍将阻止进行 CRL 检查。遇到此问题时,Communications Express Mail 用户会收到错误消息,警告他们有效密钥证书已撤销或其状态未知。

造成此问题的原因包括:

要解决此问题,您可以:

  1. 使用 SSL 将客户机和代理服务器之间的通信链路设置为安全链路,并将所有配置值保留为原来的值。或者,

  2. 保留通信链路不受安全保护的状态,并将 checkoverssl 设置为 0

有关更多信息,请参见使用 SSL 确保 Internet 链路的安全

使用过时 CRL

当 S/MIME applet 向 Messaging Server 发送检查证书的请求后,Messaging Server 将根据 CRL 检查证书。Messaging Server 并不是在每次检查证书时都将 CRL 下载到内存中,而是将 CRL 的副本下载到磁盘中并使用该副本进行证书检查。每个 CRL 都有一个下次更新字段,该字段指定在哪个日期后应该使用更新的 CRL 版本。下次更新日期可被视为使用 CRL 的截止日期或时间限制。超过下次更新日期的 CRL 将被视为旧的或过时的 CRL,并促使 Messaging Server 在下次检查证书时下载最新版本的 CRL。

每次 S/MIME applet 请求根据 CRL 检查证书时,Messaging Server 都将执行以下操作:

  1. 将 CRL 的当前日期与下次更新日期相比较。

  2. 如果 CRL 已过时,Messaging Server 将下载最新版本的 CRL 以替换磁盘上过时的 CRL,然后进行检查。但是,如果找不到或无法下载最新的 CRL,将使用 smime.conf 文件中的 crlusepastnextupdate 的值来确定要执行的操作。

  3. 如果 crlusepastnextupdate 被设置为 0,则不使用过时的 CRL,并且有问题的证书将处于一种待决状态。S/MIME Applet 使用 smime.conf 中的 revocationunknown 的值来确定下一步操作:

    1. 如果 revocationunknown 被设置为 ok,证书将被视为有效,并将使用专用或公共密钥对邮件进行签名或加密。

    2. 如果 revocationunknown 被设置为 revoked,证书将被视为无效,且不使用专用或公共密钥对邮件进行签名或加密,系统将显示一条弹出式错误消息,警告邮件用户无法使用密钥。

    如果 crlusepastnextupdate 被设置为 1,S/MIME Applet 将继续使用过时的 CRL,这样会使 Communications Express Mail 中的处理不会出现任何中断,但系统会向 Messaging Server 日志文件写入一条消息,警告您出现了这种情况。

这一系列事件将根据 CRL 检查证书的顺序继续发生。只要 Messaging Server 能够及时下载最新版本的 CRL,邮件处理就会根据 smime.conf 文件中的设置继续进行而不会中断。定期检查 Messaging Server 日志以查看是否存在指明正在使用过时 CRL 的重复消息。如果无法下载更新的 CRL,您需要调查无法访问此 CRL 的原因。

确定要使用的邮件发送时间

timestampdelta 参数主要用于以下目的:

  1. 用于处理需要花费很长时间才能到达目的地的邮件的情况。对于这种情况,发件人的密钥可能会被视为无效密钥,尽管事实上该密钥在发送邮件时是有效的。

  2. 用于限制对邮件发送时间的信任,因为发送时间可以伪造。

与每封邮件相关的时间有两个:


注 –

单击邮件的“发件人”字段右侧的三角形图标可以查看邮件标题的详细信息。


发送邮件时有效的证书可能在邮件到达目的地时已撤销或过期。遇到此情况时,检查证书有效性时应使用哪个时间呢?是发送时间还是收到时间?使用发送时间将验证发送邮件时证书是否有效。但如果始终使用发送时间,就会忽略一个事实:邮件可能需要很长时间才能到达目的地。在这种情况下最好使用收到的时间。

您可以使用 smime.conf 文件中的 timestampdelta 参数来选择进行 CRL 检查时所使用的时间。请将此参数设置为表示秒数的正整数。如果接收时间减去 timestampdelta 的值为发送时间前的某个时间,则使用发送时间。否则,使用收到时间。timestampdelta 的值越小,使用接收时间的频率就越高。如果未设置 timestampdelta,将始终使用接收时间。请参见表 20–3 中的 timestampdelta

访问 CRL 时出现问题

由于网络或服务器问题等各种原因,当 Messaging Server 尝试根据 CRL 检查证书时,CRL 可能会不可用。您可以使用 smime.conf 文件中的 crlaccessfail 参数来管理 Messaging Server 尝试访问 CRL 的频率,从而使 Messaging Server 可以执行其他任务,而不是一直把时间花在尝试获得对 CRL 的访问上。

使用 crlaccessfail 定义以下内容:

有关此参数的语法和示例,请参见表 20–3 中的 crlaccessfail

当证书撤销时

当公共密钥的证书与 CRL 上的任何条目都不匹配时,将使用该专用或公共密钥对传出邮件进行签名或加密。当证书与 CRL 上的某个条目匹配或证书的状态为未知时,该专用或公共密钥将被视为已撤销。默认情况下,Communications Express Mail 不使用具有已撤销证书的密钥对外发邮件进行签名或加密。如果在收件人读取邮件时签名邮件的专用密钥已撤销,收件人将收到一条警告消息,指示不应相信该签名。

如果需要,您可以使用 smime.conf 文件中的下列参数来更改所有已撤销证书的各种默认策略:

授予使用 S/MIME 功能的权限

可以使用 LDAP 过滤器来授予或拒绝可通过 Communications Express Mail 使用的各种邮件服务的权限。过滤器是通过 mailAllowedServiceAccessmailDomainAllowedServiceAccess LDAP 属性来定义的。一般来说,过滤器通过以下三种方式之一运行:

S/MIME 所需的邮件服务名称包括 httpsmimesmtp。如果需要限制 Communications Express Mail 用户对 S/MIME 的使用,请使用相应的 LDAP 属性语法和服务名称来创建过滤器。使用 LDAP 命令来创建或修改属性。

S/MIME 权限示例

1. 在以下示例中,将阻止一个 Communications Express Mail 用户对 S/MIME 功能的访问:

mailAllowedServiceAccess: -smime:*$+imap,pop,http,smtp:*

mailAllowedServiceAccess: +imap,pop,http,smtp:*

2. 在以下示例中,将阻止某个域中的所有 Communications Express Mail 用户对 S/MIME 功能的访问:

mailDomainAllowedServiceAccess: -smime:*$+imap:*$+pop:*$+smtp:*$+http:*

mailDomainAllowedServiceAccess: +imap:*$+pop:*$+smtp:*$+http:*

有关更多信息,请参见过滤器语法

管理证书

下面的大多数示例都使用了 ldapsearchldapmodify 命令来搜索 LDAP 目录以查找用户密钥和证书。这些命令由 Directory Server 提供。有关这些命令的更多信息,请参见《Sun ONE Directory Server Resource Kit Tools Reference Release 5.2》。

LDAP 目录中的 CA 证书

以下示例将某个证书授权机构的证书添加到 LDAP 目录中。这些证书的目录结构已经存在。证书及其所属的 LDAP 条目将被输入到名为 add-root-CA-cert.ldif.ldif 文件中。除了证书信息必须以 Base64 编码文本形式输入外,所有文本都将以 ASCII 文本形式输入到文件中:

dn: cn=SMIME Admin,ou=people,o=demo.siroe.com,o=demo
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: certificationAuthority
cn: RootCACerts
sn: CA
authorityRevocationList: novalue
certificateRevocationList: novalue
cacertificate;binary:: MFU01JTUUEjAQBgNVBAsTCU1zZ1NlcnZlcjcMBoGA1UEAxMTydG
QGEwJVUzEOMAwGA1UEMFUJTUUxEjAQBgNVBAsTCU1zZ1NlcnZlcjEMBoGA1UEAxMTQ2VydG
aFw0wNjAxMwODAwMDBaM267hgbX9FExCzAJByrjgNVBAk9STklBMQwCgYDVQQVHR8EgaQwg
YTAlVMRMQYDVQQIEwpDQUxJRk9STklBMQwwCgYDVQQKEwww3ltgYz11lzAdBgNVBpYSE9Vc
5yZWQaddWlm899XBsYW5ldC5jb20wgZ8wDQYJoGBAK1mUTy8vvnOFg4mlHjkghytQUR1k8l
5mvWRf77ntm5mGXRD3XMU4OciUq6zUfIg3ngvxlLyERTIqjUS8HQU4R5pvj+rrVgsAGjggE
+FNAJmtOV2A3wMyghqkVPNDP3Aqq2fkcn4va3C5nRNAYxNNVE84JJ0H3jyPDXhMBlQU6vQn
weMBAAjggEXMIIBEzARBglghkgBhCAQEEBApqlSai4mfuvjh02SQkoPMNDAgTwMB8GA1UdI
QYMBaAEd38IK05AHreiU9OYc6vNMOwZMIGsBgNVHR8EgaQwgaEwb6BtoGuGaWxkYXA6Lyht
bmcucmVkLmlbGFuZXQuY29tL1VJD1DXJ0aWZpY2F0ZSBNYW5hZ2VyLE9VPVBlb3BsZSxPPW
aWxxYT9jZXJ0aZpY2jdu2medXRllkghytQURYFNrkuoCygKoYoaHR0cDovL3Bla2kghytQU
Zy5yZWQuaXBsYW5lC5jb20vcGVranLmNybDAeBgNVHREEFzAVgRNwb3J0aWEuc2hhb0BzdW
4uY29tMA0GCxLm78freCxS3Pp078jyTaDci1AudBL8+RrRUQvxsMJfZeFED+Uuf10Ilt6kw
Tc6W5UekbirfEZGAVQIzlt6DQJfgpifGLvtQ60Kw==

使用 ldapmodify 命令将 CA 的证书添加到 LDAP 目录中:


# ldapmodify -a -h demo.siroe.com -D "cn=Directory Manager" -w mypasswd -v
 -f add-root-CA-cert.ldif

smime.conftrustedurl 参数的值指定了 CA 证书在 LDAP 目录中的位置。例 1,按以下方式设置 trustedurl

trustedurl==ldap://demo.siroe.com:389/cn=SMIME Admin, ou=people, 
o=demo.siroe.com,o=demo?cacertificate;binary?sub?
(objectclass=certificationAuthority)

LDAP 目录中的公共密钥和证书

以下示例展示了如何将邮件用户的公共密钥和证书添加到 LDAP 目录中。该示例假定 LDAP 目录中已存在该邮件用户。密钥和证书及其所属的 LDAP 条目将被输入到名为 add-public-cert.ldif.ldif 文件中。除了密钥和证书信息必须以 Base64 编码文本形式输入外,所有文本都将以 ASCII 文本形式输入到文件中。

dn: uid=JohnDoe,ou=People, o=demo.siroe.com,o=demo
changetype: modify
replace: usercertificate
usercertificate;binary:: MFU01JTUUxEjAQBgNVBAsT1zZ1NlcnZlcjMBoGA1UEAxMTydG
QGEwJVUzEAwGA1hMFU01JTUUxEjAQBgNVBAsTCU1zZ1NlcnZlcjEcMBoGA1UEAxMTQ2VydG
aFw0wNjAxMTODAwaM267hgbX9FExCzAJBgwyrjgNVBAk9STklBMQwwCgYDVQQVHR8EgaQwg
AlVzMRMwEQYDVQQIDQUxJRk9STklBMQwwCgYDVQQKEwww3ltgoOYz11lzAdBgNVBpYSE9Vc
5yZWaddiiWlm899XBsYW5ldb20wgZ8wDQYJoGBAK1mUTy8vvO2nOFg4mlHjkghytQUR1k8l
5mvgcWL77ntm5mGXRD3XMU4OcizUfIg3ngvxlLKLyERTIqjUS8HQU4R5pvj+rrVgsAGjggE
+FG9NAqtOV2A3wMyghqkVPNDP3Aqq2BYfkcn4va3RNAYxNNVE84JJ0H3jyPDXhMBlQU6vQn
1NAgMBGjggEXMIIBEzARBglghkgBhvhCAQEEBApqlSai4mfuvjh02SQMNDAgTwMB8GA1UdI
QYMBaEd38IK05AHreiU9OYc6v+ENMOwZMIGsBgNVHR8EgaQwgaEwb6BuGaWxkYXA6Lyht74
tpbmcmVkLmlwbGFuZXQuY29tL1VJRD1DZXJ0aWZpY2F0ZSBNYW5hZ2V9VPVBlb3BsZSxPPW
1haWxT9jZXJ0aWZpY2jdu2medXRllHjkghytQURYFNrkuoCygKoYoaHDovL3Bla2kghytQU
luZy5WQuaXBsYW5ldC5jb20vcGVraW5nLmNybDAeBgNVHREEFzAVgRNw0aWEuc2hhb0BzdW
4uY29A0GCxLm78UfreCxS3Pp078jyTaDv2ci1AudBL8+RrRUQvxsMJfZD+Uuf10Ilt6kwhm
Tc6W5UekbirfEZGAVQIzlt6DQJfgpifGLvtQ60Kw==

ldapmodify 命令用于将公共密钥和证书添加到 LDAP 目录中:


# ldapmodify -a -h demo.siroe.com -D "cn=Directory Manager" -w mypasswd -v
 -f add-public-cert.ldif

smime.confcerturl 参数的值指定了公共密钥及其证书在 LDAP 目录中的位置。对于示例 2,按如下方式设置 certurl

certurl==ldap://demo.siroe.com:389/ou=people, o=demo.siroe.com, 
o=demo?userCertificate;binary?sub?

验证 LDAP 目录中是否存在密钥和证书

以下示例演示了搜索 LDAP 目录以查找 CA 证书和公共密钥及其证书。

搜索一个 CA 证书

在以下示例中,由 -b 选项定义的基本 DN cn=SMIME admin, ou=people,o=demo.siroe.com,o=demo objectclass=* 描述了 LDAP 目录中的一个 CA 证书。如果在目录中找到该证书,ldapsearch 将把关于该证书的信息返回到 ca-cert.lidf 文件中。


# ldapsearch -L -h demo.siroe.com -D "cn=Directory Manager" -w mypasswd -b
"cn=SMIME admin, ou=people,o=demo.siroe.com,o=demo" "objectclass=*" 
> ca-cert.ldif

以下示例显示了 ca-cert.ldif 文件中的搜索结果。文件内容的格式是使用 ldapsearch-L 选项的结果。


# more ca-cert.ldif
dn: cn=SMIME admin,ou=people,o=demo.siroe.com,o=demo
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: certificationAuthority
cn: RootCACerts
cn: SMIME admin
sn: CA
authorityRevocationList: novalue
certificateRevocationList: novalue
cacertificate;binary:: MFU01JTUUxEjAQBgNVBAsTCU1zZNlcnZlcjcMBoGA1UEAxMTydG
QGEwJVEOMAwGA1UEChMFU0UUxEjAQBgNVBAsTCU1zZ1NlcnZlcjEcMBoGA1UEAxMTQ2VydG
aFw0jAxMTIwODAwMDBaM267X9FExCzAJBgwyrjgNVBAk9STklBMQwwCgYDVQQVHR8EgaQwg
YlVzMRMwEQYDVQQIEwpDQUx9STklBMQwwCgYDVQQKEwww3ltgoOYz11lzAdBgNVBpYSE9Vc
5yQuaddiiWlm899XBsYW5ljb20wgZ8wDQYJoGBAK1mUTy8vvO2nOFg4mlHjkghytQUR1k8l
5mcWRfL77ntm5mGXRD3XMciUq6zUfIg3ngvxlLKLyERTIqjUS8HQU4R5pvj+rrVgsAGjggE
+FNAJmqtOV2A3wMyghqkDP3Aqq2BYfkcn4va3C5nRNAYxNNVE84JJ0H3jyPDXhMBlQU6vQn
1NABAAGjggEXMIIBEzglghkgBhvhCAQEEBApqlSai4mfuvjh02SQkoPMNDAgTwMB8GA1UdI
QYMAFEd38IK05AHreOYc6v+ENMOwZMIGsBgNVHR8EgaQwgaEwb6BtoGuGaWxkYXA6Lyht74
tpbucmVkLmlwbGFuZY29tL1VJRD1DZXJ0aWZpY2F0ZSBNYW5hZ2VyLE9VPVBlb3BsZSxPPW
1haWYT9jZXJ0aWZpdu2medXRllHjkghytQURYFNrkuoCygKoYoaHR0cDovL3Bla2kghytQU
luZyZWQuaXBsYW5ldb20vcGVraW5nLmNybDAeBgNVHREEFzAVgRNwb3J0aWEuc2hhb0BzdW
4uYtMA0GCxLm78Ufre3Pp078jyTaDv2ci1AudBL8+RrRUQvxsMJfZeFED+Uuf10Ilt6kwhm
Tc6W5UekbirfEZGAVQIzlt6DQJfgpifGLvtQ60Kw==

搜索多个公共密钥

在以下示例中,由 -b 选项定义的基本 DN o=demo.siroe.com,o=demo objectclass=* 将把在 LDAP 目录中找到的、位于此基本 DN 上以及此基本 DN 下面的所有公共密钥和证书返回到 usergroup.ldif 文件中:


# ldapsearch -L -h demo.siroe.com -D "cn=Directory Manager" -w mypasswd 
-b "o=demo.siroe.com,o=demo" "objectclass=*" > usergroup.ldif

搜索一个公共密钥

在以下示例中,由 -b 选项定义的基本 DN uid=JohnDoe, ou=people,o=demo.siroe.com,o=demo objectclass=* 描述了 LDAP 目录中的一个公共密钥及其证书:


# ldapsearch -L -h demo.siroe.com -D "cn=Directory Manager" -w mypasswd -b 
"uid=JohnDoe, ou=people,o=demo.siroe.com,o=demo" "objectclass=*" > public-key.ldif

以下示例显示了 public-key.ldif 文件中的搜索结果。文件内容的格式是使用 ldapsearch-L 选项的结果。


# more public-key.ldif
dn: uid=sdemo1, ou=people, o=demo.siroe.com, o=demo
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: siroe-am-managed-person
objectClass: inetOrgPerson
objectClass: inetUser
objectClass: ipUser
objectClass: userPresenceProfile
objectClass: inetMailUser
objectClass: inetLocalMailRecipient
objectClass: icsCalendarUser
objectClass: sunUCPreferences
mail: JohnDoe@demo.siroe.com
mailHost: demo.siroe.com
.
.
uid: JohnDoe
.
.
mailUserStatus: active
inetUserStatus: active
.
.
usercertificate;binary:: MFU01JTUUxEjAQBgNBAsTCU1zZ1NlcnZjcMBoGA1UEAxMTydG
QGEwJEOwGA1UEChMFU01JTUUxEjAQBgNVBAsTCU1zZ1NlcnZlcjEcMBoGA1UEAxMTQ2VydG
aFw0MTIwODAwMDBaM267hgbX9FExCzAJBgwyrjgNVBAk9STklBMQwwCgYDVQQVHR8EgaQwg
YTAlVEQYDVQQIEwpDQUxJRk9STklBMQwwCgYDVQQKEwww3ltgoOYz11lzAdBgNVBpYSE9Vc
5yZWQdWlm899XBsYW5ldC5jb20wgZ8wDQYJoGBAK1mUTy8vvO2nOFg4mlHjkghytQUR1k8l
5mvgc7ntm5mGXRD3XMU4OciUq6zUfIg3ngvxlLKLyERTIqjUS8HQU4R5pvj+rrVgsAGjggE
+FG9NmV2A3wMyghqkVPNDP3Aqq2BYfkcn4va3C5nRNAYxNNVE84JJ0H3jyPDXhMBlQU6vQn
1NAgMAgEXMIIBEzARBglghkgBhvhCAQEEBApqlSai4mfuvjh02SQkoPMNDAgTwMB8GA1UdI
QYMBaEdK05AHreiU9OYc6v+ENMOwZMIGsBgNVHR8EgaQwgaEwb6BtoGuGaWxkYXA6Lyht74
tpbucmVkwbGFuZXQuY29tL1VJRD1DZXJ0aWZpY2F0ZSBNYW5hZ2VyLE9VPVBlb3BsZSxPPW
1haxYT9jZaWZpY2jdu2medXRllHjkghytQURYFNrkuoCygKoYoaHR0cDovL3Bla2kghytQU
luZyZWQuaYW5ldC5jb20vcGVraW5nLmNybDAeBgNVHREEFzAVgRNwb3J0aWEuc2hhb0BzdW
4u9tMA0GC78UfreCxS3Pp078jyTaDv2ci1AudBL8+RrRUQvxsMJfZeFED+Uuf10Ilt6kwhm
Tc6W5UekbirfEZGAVQIzlt6DQJfgpifGLvtQ60Kw==
.
.

网络安全服务证书

用于网络安全服务 (Network Security Services, NSS) 的各种证书存储在其各自的数据库中,而不是存储在 LDAP 数据库中。Messaging Server 提供了两个实用程序 certutilcrlutil 来把证书及相关的 CRL 存储到数据库中。您还可以使用这些实用程序来搜索数据库。

有关 certutil 的更多信息,请参见 Sun Java System Directory Server Administration Guide (http://download.oracle.com/817-7613)。有关该实用程序的更多信息,请使用 crlutil 附带的帮助文本(要查看这两个实用程序的联机帮助,请在不使用参数的情况下执行这两个实用程序)。

Communications Express S/MIME 最终用户信息

本节包含适用于最终用户的信息。它包含以下几个小节:

首次登录

邮件用户首次登录 Communications Express Mail 时,用户将会收到与 S/MIME applet 相关的特殊提示。

Windows 的提示

在 Windows 98、2000 或 XP 上首次登录到 Communications Express Mail 时,系统将显示以下提示:

  1. 如果您的计算机(客户机)中未安装 Java 2 Runtime Environment (JRE),您将收到类似下面内容的提示:

    Do you want to install and run “Java Plug-in 1.4.2_03 signed on 11/20/03 and distributed by Sun Microsystems, Inc.”?Publisher authenticity verified by: VeriSign Class 3 Code Signing 2001 CA

    单击 "Yes",然后按照后续提示安装 JRE。


    注 –

    如果需要英文语言支持并且还需要阅读包含非拉丁字符(例如中文)的传入 S/MIME 邮件,则您的计算机的 /lib 目录中必须包含 charsets.jar 文件。

    为确保将 charsets.jar 文件安装到 /lib 目录中,请通过自定义安装来安装英语版的 JRE。在安装过程中,请选择“支持其他语言”选项。

    有关更多信息,请参见多语言支持


    在出现最后一个安装提示时单击“完成”。重新启动计算机,然后再次登录 Communications Express Mail。

  2. 系统将显示一则提示,询问您:

    Do you want to trust the signed applet distributed by “Sun Microsystems, Inc.”?Publisher authenticity verified by: Thawte Consulting cc

    单击以下回答之一:

    • "Yes",接受 S/MIME applet,以用于此 Communications Express Mail 会话。每次登录时都会显示此提示。

      • "No",拒绝 S/MIME applet。您将不能使用 S/MIME 功能。

      • "Always",接受 S/MIME applet,以将其用于此 Communications Express Mail 会话及所有后续 Communications Express Mail 会话。您将不会再看到此提示。

  3. 系统将显示一则提示,询问您:

    Do you want to trust the signed applet distributed by “sun microsystems, inc.”?Publisher authenticity verified by: VeriSign, Inc.

    单击以下回答之一:

    • "Yes",接受 S/MIME applet,以用于此 Communications Express Mail 会话。每次登录时都会显示此提示。

    • "No",拒绝 S/MIME applet。您将不能使用 S/MIME 功能。

    • "Always",接受 S/MIME applet,以将其用于此 Communications Express Mail 会话及所有后续 Communications Express Mail 会话。您将不会再看到此提示。

签名和加密设置

您可以设置初始签名和加密设置,以控制是否对所有用户的传出邮件都:

初始设置还可以控制位于 Communications Express Mail 窗口底部以及“选项 - 设置”窗口中的签名和加密复选框是显示为选中(功能已启用)状态,还是显示为未选中(功能已禁用)状态。使用 smime.conf 文件中的 alwaysencryptalwayssign 参数可以指定初始设置。

让您的邮件用户知道他们可以更改其邮件的初始设置。登录到 Communications Express Mail 后,用户可以暂时覆盖一个邮件的设置,或在持续进行的基础上覆盖所有邮件的设置。

表 20–5 概括了各个复选框的用法。

表 20–5 Communications Express Mail 的签名和加密复选框

复选框文本 

位置 

Communications Express Mail 用户执行的操作 

在邮件中签名 

位于 Communications Express Mail 窗口的底部,用于撰写、转发或回复邮件。 

  • 选中此框将对当前邮件进行签名。

  • 取消选中此框将不对当前邮件进行签名。

对邮件进行加密 

位于 Communications Express Mail 窗口的底部,用于撰写、转发或回复邮件。 

  • 选中此框将对当前邮件进行加密。

  • 取消选中此框将不对当前邮件进行加密。

在所有外发邮件中签名 

位于 Communications Express Mail 的“选项 - 设置”窗口中的“安全传送邮件”选项下。 

  • 选中此框将自动对所有邮件进行签名。

  • 取消选中此框则不会自动对所有邮件进行签名。

    注意:可以对每个邮件使用“在邮件中签名”复选框来进行处理,从而覆盖“为所有外发邮件签名”的设置。

对所有外发邮件加密 

位于 Communications Express Mail 的“选项 - 设置”窗口中的“安全传送邮件”选项下。 

  • 选中此框将自动对所有邮件进行加密。

  • 取消选中此框则不会自动对所有邮件进行加密。

    注意:可以对每个邮件使用“对邮件进行加密”复选框来进行处理,从而覆盖“对所有外发邮件加密”的设置。

启用 Java 控制台

当 Communications Express Mail 用户处理签名和加密邮件时,S/MIME applet 可以将各种操作消息写入 Java 控制台。在对邮件用户报告的问题进行错误诊断时,Java 控制台消息可能会很有用。但是,仅当通过将 nswmExtendedUserPrefs 属性添加到 LDAP 条目的 inetMailUser 对象类中从而为用户启用 Java 控制台时,才会生成操作消息。例如:

nswmExtendedUserPrefs:meSMIMEDebug=on

请不要始终对所有邮件用户都启用 Java 控制台,因为这样做会明显降低 Communications Express Mail 的性能。