Sun Java System Messaging Server 6.3 管理指南

23.5 配置加密和基于证书的验证

本节包含以下小节:

Messaging Server 使用传输层安全性 (Transport Layer Security, TLS) 协议(或称为安全套接字层 [Secure Sockets Layer, SSL] 协议)来进行加密通信以及客户端和服务器的基于证书的验证。Messaging Server 支持 SSL 版本 3.0 和 3.1。TLS 与 SSL 完全兼容并包含所有必需的 SSL 功能。

有关 SSL 的背景信息,请参见《Managing Servers With iPlanet Console 5.0》中的 Introduction to SSL。SSL 基于公匙密码学的概念,这在《Managing Servers With iPlanet Console 5.0 》Introduction to Public-Key Cryptography 中已作了说明)。

如果对 Messaging Server 及其客户端之间以及服务器和其他服务器之间的邮件传送进行加密,则几乎没有机会窃听通信。如果正在连接的客户端已经过验证,则盗窃信息者几乎没有机会冒充(欺骗)这些客户端。

SSL 作为 IMAP4、HTTP、POP3 和 SMTP 应用层下面的协议层发挥作用。SMTP 和 SMTP/SSL 使用同一端口;HTTP 和 HTTP/SSL 要求使用不同的端口;IMAP 和 IMAP/SSL 以及 POP 和 POP/SSL 可以使用同一端口,也可以使用不同的端口。SSL 在外发和外来邮件的邮件通信的特定阶段发挥作用,如图 23–1 所示。

图 23–1 与 Messaging Server 的加密通信

此图形描述了加密的外发和外来邮件。

SSL 提供了逐个加密,但是不能在每个中间服务器上都加密邮件。


注 –

要能够对外发邮件进行加密,必须修改通道定义以使其包含 tls 通道关键字,例如 maytlsmusttls 等。有关更多信息,请参见12.4.8 传输层安全性手册。


请记住,设置一个 SSL 连接时的附加系统开销可能给服务器带来性能负担。设计邮件服务安装以及分析性能时,您可能需要针对服务器容量来平衡安全需要。

23.5.1 获得证书

无论将 SSL 用于加密还是用于验证,都需要获得服务器证书以用于 Messaging Server。此证书可使您的服务器区别于客户端和其他服务器。获得证书最有效的方式是使用 msgcert 命令(在本节后面部分作了说明)。请注意,以前的 certutil 命令仍然起作用,但它更加复杂,而且没有被国际化。有关 certutil 的更多信息,请参见23.5 配置加密和基于证书的验证http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html

本节包含以下几个部分:

23.5.1.1 管理内部模块和外部模块

服务器证书建立了密钥对的拥有权和有效性,编号则用于加密和解密数据。服务器的证书和密钥对代表了服务器的标识。证书和密钥对都存储在证书数据库中,此数据库可以内置于服务器中或位于外部的可移动硬件插卡(智能卡)上。

Sun Java System 服务器使用遵循公钥密码学系统 (Public-Key Cryptography System, PKCS) #11 API 的模块来访问密钥和证书数据库。通常可以从给定硬件设备的供应商那里获得此设备的 PKCS #11 模块,并且必须将此模块安装到 Messaging Server 之后,Messaging Server 才能使用此设备。预先安装的“Netscape 内部 PKCS # 11 模块”支持单个内部软件标记(使用服务器的内部证书数据库)。

对证书设置服务器包括为证书及其密钥创建数据库以及安装 PKCS #11 模块。如果未使用外部硬件标记,则请在服务器中创建内部数据库并使用作为 Messaging Server 一部分的此内部默认模块。如果使用了外部标记,则请连接硬件智能卡阅读器并安装其 PKCS #11 模块。


注 –

下列各节将涉及控制台或 Directory Server 控制台。这里指的是版本 6 之前的 Directory Server,对于版本 6 或更高版本,图形用户界面称为 Directory Server 控制中心。有关更多信息,请参阅最新的 Directory Server 文档(《Sun Java System Directory Server Enterprise Edition 6.0 Administration Guide》)。


您可以通过控制台管理 PKCS #11 模块,无论此模块是内部模块还是外部模块。要安装 PKCS #11 模块,请执行以下操作:

  1. 将硬件插卡阅读器连接到 Messaging Server 主机计算机并安装驱动程序。

  2. 使用位于 msg-svr-base/sbin 中的 modutil 为安装的驱动程序安装 PKCS #11 模块。

安装硬件加密加速器。如果将 SSL 用于加密,则安装硬件加密加速器可能会改进服务器加密和解密邮件时的性能。加密加速器通常由永久地安装在服务器计算机中的硬件板和软件驱动程序组成。Messaging Server 支持遵循 PKCS #11 API 的加速器模块。(它们是基本的硬件标记,并不存储自己的密钥;而是使用内部数据库来存储。)首次安装由生产商指定的硬件和驱动程序时即安装了加速器,然后通过安装 PKCS #11 模块完成加速器的安装(同时使用硬件证书标记)。

23.5.1.2 创建密码文件

在大多数为其启用了 SSL 的 Sun Java System 服务器上,在启动时系统都提示管理员提供解密密钥对所需的密码。但是,在 Messaging Server 上,为了缓解必须多次(至少在三个服务器进程中需要)输入密码带来的不便,并方便无人看管的服务器重新启动,可以从密码文件读取密码。密码本身在使用 msgcert generate_certdb 命令创建它们的证书数据库时生成。

此密码文件的名称为 sslpassword.conf,并位于 msg-svr-base/config/ 目录中。文件中的条目是具有以下格式的单独行

moduleName:password

其中 moduleName 是要使用的内部或外部 PKCS #11 模块的名称,password 则是解密此模块的密钥对的密码。此密码以明文(不加密的)存储。

Messaging Server 提供了默认版本的密码文件,具有以下单个条目(适用于内部模块和默认密码):

Internal (Software) Token:netscape!

如果安装内部认证时指定的不是默认密码,则需要编辑密码文件的上述行以反映您指定的密码。如果安装外部模块,则需要将一个新的行添加到文件中,该行包含模块名称和您为此模块指定的密码。


注意 – 注意 –

因为系统未在服务器启动时提示管理员提供模块密码,所以确保管理员控制对服务器的正常访问以及服务器主机及其备份的正常物理安全性是极为重要的。


23.5.1.3 获得和管理证书

无论将 SSL 用于加密还是用于验证,都需要获得服务器证书以用于 Messaging Server。此证书可使您的服务器区别于客户端和其他服务器。用于获得和管理证书的主要机制是使用 msgcert。但是,如果安装了 Administration Server,您也可以使用管理控制台。

本节其余部分介绍如何使用 msgcert

23.5.1.4 关于 msgcert

msgcert 允许您生成证书请求、将证书添加到证书数据库、列出数据库中的证书,等等。要获取详细信息,请在命令行中输入以下内容:

msg-svr-base/sbin/msgcert --help

如下所示。


# ./msgcert --help

Usage: msgcert SUBCMD [GLOBAL_OPTS] [SUBCMD_OPTS] [SUBCMD_OPERANDS]
Manages the Messaging Servers Certificate Database
The accepted values for SUBCMD are:

add-cert              Adds a certificate to the certificate database
add-selfsign-cert     Creates and adds a selfsign certificate to the 
                      certificate database
export-cert           Exports a certificate and its keys from the database
generate-certDB       Creates Messaging Server Databases cert8.db key3.db 
                      secmod.db and sslPassword
import-cert           Adds a new certificate and its keys to the cert database
import-selfsign-cert  Adds a new selfsign certificate and its keys to the 
                      cert database
list-certs            Lists all certificates in the Certificate database
remove-cert           Removes a certificate from the database
renew-cert            Renews a certificate
renew-selfsign-cert   Renews a selfsign certificate
request-cert          Generates a certificate request
show-cert             Displays a certificate

The accepted value for GLOBAL_OPTS is:-?, --help
                Displays SUBCMD help

NOTE: You must stop all the TLS or SSL-enabled servers before making any 
changes to the Certificate Database.

以上显示的每个子命令都执行一个特定的证书管理功能。有关这些子命令及其功能的详细信息,可以通过输入以下命令获得:

msgcert SUBCMD –help

本节剩余部分将介绍一些常见的证书管理过程。

23.5.1.5 管理证书

本节介绍如何在 Messaging Server 中管理 SSL 证书。要在 Messaging Server 上运行 SSL,您必须使用自签名证书,也可以使用包含外部证书授权机构 (Certificate Authority, CA) 的公钥基础设施 (Public Key Infrastructure, PKI) 解决方案。要使用 PKI 解决方案,您需要包含公匙和私匙的 CA 签名服务器证书。此证书特定于一个 Messaging Server。此外还需要一个包含公钥的可信 CA 证书。可信 CA 证书可确保来自 CA 的所有服务器证书都是可信的。此证书有时称为 CA 根密钥或根证书。

配置证书数据库密码

在管理证书时,您无需键入证书密码或指定密码文件。只需将密码作为 -W 参数传递即可。示例:


echo "password22" > /tmp/certdbpwd
echo "password22" > /tmp/certdbpwd
# ./msgcert list-certs -W /tmp/certdbpwd

Procedure使用默认的自签名证书创建 Messaging Server 证书数据库

  1. 要创建 Messaging Server 证书数据库,请运行以下命令:


    msgcert generate-certDB

    此命令将从 CERT_PW_FILE 中读取证书数据库密码(默认值:提示输入密码)

  2. 您可以使用以下命令查看该证书:


    msgcert show-cert Server-Cert
    

Procedure管理自签名证书

如果将证书用于测试,则您可以使用自签名证书。在部署配置中,您可能希望使用可信的证书授权机构 (Certificate Authority, CA) 证书。您也可以使用 Directory Server 管理控制台执行该任务。

  1. 在创建证书数据库时,会自动提供一个默认的自签名证书。如果您要使用不带默认设置的自签名证书,则使用 msgcert add-selfsign-cert 命令。示例:


    msgcert add-selfsign-cert --name siroe --org comms --org-unit Messaging 
    --city SantaClara --state ca --country us MySelfSigned-Cert

    自签名证书的有效期为 3 个月。

  2. 当自签名证书过期时,请使用以下命令续订该证书:


    msgcert renew-selfsign-cert cert_alias
    

23.5.1.6 安装可信 CA 证书

使用 ./msgcert add-cert 安装证书授权机构的证书。CA 证书可验证 CA 自身的标识。服务器在验证客户端和其他服务器的过程中使用这些 CA 证书。

例如,如果除了基于密码的验证之外,您还将您的企业设置为基于证书的客户端验证(请参见第 157 页中的“设置基于证书的登录”),则需要安装所有 CA(可以信任这些 CA 颁发将在客户端显示的证书)的 CA 证书。这些 CA 对于您的组织可能是内部 CA 也可能是外部 CA,代表了商业机构或政府机构或其他企业。(有关将 CA 证书用于验证的详细信息,请参见《Managing Servers With iPlanet Console 5.0》。)

安装后,Messaging Server 初始包含了若干商业 CA 的 CA 证书。如果您需要添加其他商业 CA 或者如果您的企业正在制定(使用 Sun Java System Certificate Server)自己的 CA 以在内部使用,则需要获得并安装其他 CA 证书。


注 –

随 Messaging Server 自动提供的 CA 证书对客户端证书并未初始标记为信任。如果您想要信任由这些 CA 颁发的客户端证书,则需要编辑信任设置。有关说明,请参见23.5.1 获得证书


以下步骤介绍请求和安装 CA 签名服务器证书和可信 CA 证书(用于 Messaging Server)的过程。

Procedure请求 CA 签名服务器证书

您也可以使用 Directory Server 管理控制台执行该任务。

  1. 生成 CA 签名服务器证书请求。


    msgcert request-cert [-W CERT_PW_FILE] {-S DN|--name NAME [--org ORG] [--org-unit ORG-UNIT]
       [--city CITY] [--state STATE] [--country COUNTRY] } [-F FORMAT] [-o OUTPUT_FILE]

    以下是一个请求 CA 签名服务器证书的示例。它以二进制格式返回证书:


    ./msgcert request-cert --name aqua --org siroe --org-unit Messaging -o my_ca_signed_request_cert

    要以 ASCII 格式返回证书,请使用以下命令:


    ./msgcert request-cert --name aqua --org siroe --org-unit Messaging -F ascii -o my_casigned_request_cert

    证书授权机构通常需要该示例中显示的所有属性,以便完整地标识服务器。要查看每个属性的说明,请输入 ./msgcert request-cert --help。使用 msgcert request-cert 请求证书时,得到的证书请求是二进制证书请求,除非您指定输出格式为 ASCII。如果指定 ASCII,得到的证书请求是 PEM 格式的 PKCS #10 证书请求。PEM 由是 RFC 1421 至 1424 指定的保密性增强的电子邮件格式,用于以 US-ASCII 字符表示 base64 编码的证书请求。该请求的内容与以下示例类似:


    -----BEGIN NEW CERTIFICATE REQUEST-----
    MIIBdTCB3wIBADA2MRIwEAYDVQQLEwlNZXNzYWdpbmcxDjAMBgNVBAoTBXNpcm9l
    MRAwDgYDVQQDEwdhcXVhdGljMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDt
    KEh5Fnj/h9GEu18Da6DkJpcNShkwxanjnKs2883ZoUV5Sp4pN7U6Vfbh0414WXZh
    D26m3t81q9b9h47Klkf0pW1X3BB6LOjGOHSt2VoNBI8n3hJ6XiN2zYbrlLTgdKuo
    y0YrSG/kHFnqKghikag9O/Ox+cwD+mpjl2QnsPZgswIDAQABoAAwDQYJKoZIhvcN
    AQEEBQADgYEArqgWQIwNZDC2d3EZawI23Wj9o6Pyvu9J1rkb+NYgIEnNp9jugxqX
    F326N0ABLdHXXNX/2ZvC5TKOgS4RidTBM89N9xJvokmvRGfc+1x80uxy474YdNlZ
    s+nP8AYo9dW9mrLOammozx9HLPSVYNFp4FxekgV2n8QG7WC5rkN5bCE=
    -----END NEW CERTIFICATE REQUEST-----
  2. 按照程序将证书请求传送给证书授权机构。

    获得证书授权机构证书的过程取决于所使用的证书授权机构。一些商业 CA 提供了允许您自动下载证书的 Web 站点。其他 CA 将在您请求证书后以电子邮件形式向您发送证书。

    发送请求之后,您必须等待 CA 对请求做出响应,即提供您的证书。请求的响应时间各不相同。例如,如果您的 CA 在公司内部,则 CA 可能只需一两天即可响应您的请求。如果您选择的 CA 在公司外部,则 CA 可能需要几个星期才能响应您的请求。

  3. 保存从证书授权机构收到的证书。

    您应该将证书备份在安全的地方。如果您丢失了证书,则可以使用备份文件重新安装它们。您可以将证书保存在文本文件中。PEM 格式的 PKCS #11 证书与以下示例类似。


    -----BEGIN CERTIFICATE-----
    MIICjCCAZugAwIBAgICCEEwDQYJKoZIhKqvcNAQFBQAwfDELMAkGA1UEBhMCVVMx
    IzAhBgNVBAoGlBhbG9a2FWaWxsZGwSBXaWRnZXRzLCBJbmMuMR0wGwYDVQQLExRX
    aWRnZXQgTW3FrZXJzICdSJyBVczEpMCcGAx1UEAxgVGVzdCBUXN0IFRlc3QgVGVz
    dCBUZXN0IFlc3QgQ0EswHhcNOTgwMzEyMDIzMzUWhcNOTgwMzI2MDIzMpzU3WjBP
    MQswCYDDVQQGEwJVUzEoMCYGA1UEChMfTmV0c2NhcGUgRGlyZN0b3J5VIFB1Ymxp
    Y2F0aW9uczEWMB4QGA1UEAxMNZHVgh49dq2tLNvbjTBaMA0GCSqGSIb3DQEBAQUA
    A0kAMEYkCQCksMR/aLGdfp4m0OiGgijG5KgOsyRNvwGYW7kfW+8mmijDtZaRjYNj
    jcgpF3VnlbxbclX9LVjjNLC5737XZdAgEDozYwpNDARBglghkgBhvhCEAQEEBAMC
    APAwHkwYDVR0jBBgwFAU67URjwCaGqZHUpSpdLxlzwJKiMwDQYJKoZIhQvcNAQEF
    BQADgYEAJ+BfVem3vBOPBveNdLGfjlb9hucgmaMcQa9FA/db8qimKT/ue9UGOJqL
    bwbMKBBopsDn56p2yV3PLIsBgrcuSoBCuFFnxBnqSiTS7YiYgCWqWaUA0ExJFmD6
    6hBLseqkSWulk+hXHN7L/NrViO+7zNtKcaZLlFPf7d7j2MgX4Bo=
    -----END CERTIFICATE-----

Procedure添加 CA 签名服务器证书和可信 CA 证书

您也可以使用 Directory Server 管理控制台执行该任务。

  1. 使用以下命令添加 CA 签名服务器证书:


    msgcert add-cert cert_alias cert_file
    

    其中 cert_alias 是您提供的用于标识证书的名称,cert_file 是包含 PEM 格式的 PKCS #11 证书的文本文件。

    例如,要安装 CA 签名服务器证书,可以使用类似以下形式的命令:


    msgcert add-cert /my_cert/server-cert-file

    现在证书已经安装,但还不是可信的。要信任 CA 签名的服务器证书,您必须安装证书授权机构证书。

  2. 使用以下命令添加可信证书授权机构证书:


    msgcert add-cert -C cert_alias cert_file
    

    -C 选项表示证书是可信证书授权机构证书。

    例如,要安装来自证书授权机构的可信证书,可以使用以下命令:


    msgcert add-cert -C CA-cert /my_cert/ca-cert-file
  3. 可以选择使用以下命令验证安装的证书:

    列出所有服务器证书,并显示别名和有效日期等信息:


    msgcert list-certs

    在使用 ./msgcert generate-CertDB 生成证书时,Messaging Server 将具有一个名为 Server-Cert 的默认证书。文本 "Same as issuer" 表示默认证书是自签名的服务器证书。例如:


    # ./msgcert list-certs
    Enter the certificate database password:
    Alias          Valid from       Expires on       Self-   Issued by             Issued to
                                                     signed
    ------------   ----------------  --------------- ------  --------------------- -------------------------  --------------
    SelfSignedCrt 2006/07/28 12:58  2006/10/28 12:58   y     CN=SFO,L=SC,ST=ca,C=us  Same as issuer
    Server-Cert   2006/07/28 07:47  2006/10/28 07:47   y     CN=perseids             Same as issuer
    2 certificates found

    列出可信的 CA 证书:


    msgcert list-certs -C

    查看证书的详细信息(包括证书过期日期):


    msgcert show-cert cert_alias
    

    例如,要显示一个自签名证书:


    # ./msgcert show-cert MySelfSigned-Cert
    Enter the certificate database password:
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                00:83:35:37:94
            Signature Algorithm: PKCS #1 MD5 With RSA Encryption
            Issuer:
                "CN=siroe,O=comms,OU=Messaging,L=SantaClara,ST=ca,C=us"
            Validity:
                Not Before: Fri Jul 28 19:58:31 2006
                Not After : Sat Oct 28 19:58:31 2006
            Subject:
                "CN=siroe,O=comms,OU=Messaging,L=SantaClara,ST=ca,C=us"
            Subject Public Key Info:
                Public Key Algorithm: PKCS #1 RSA Encryption
                RSA Public Key:
                    Modulus:
                        aa:9d:3d:23:b2:59:39:f3:77:c8:69:7f:b0:d1:ac:d2:
                        4e:81:c8:51:0f:27:6f:a1:21:4b:a9:27:46:d7:0f:b4:
                        c8:44:86:32:5e:4f:2f:1c:2f:a9:b8:a3:49:b5:b8:ab:
                        51:a8:a5:ba:1c:e8:90:7d:46:67:f9:a7:44:c5:1d:24:
                        e6:bd:e8:8f:07:b4:5a:68:41:b1:19:f2:ea:98:ba:25:
                        55:b8:ba:9c:af:bb:43:c3:c0:8f:14:a7:4c:2b:50:b4:
                        ac:df:b5:cd:68:de:a6:14:9d:68:77:d3:8b:7f:de:c0:
                        5d:35:d7:55:8d:b5:c3:14:2a:60:a9:bf:de:96:90:a9
                    Exponent: 65537 (0x10001)
        Signature Algorithm: PKCS #1 MD5 With RSA Encryption
        Signature:
            15:86:f1:cc:85:c9:08:0f:ff:d3:56:d8:e2:c8:ea:3c:
            8e:45:36:be:8b:b0:7d:2f:e9:cd:e3:b4:ad:8c:70:59:
            c8:a5:14:da:9c:fa:7f:70:86:64:34:0b:21:ae:c4:28:
            d2:f5:94:5c:a6:78:0f:d9:fd:fc:c5:5e:37:49:25:a9:
            bc:12:59:cb:fb:4e:e9:d4:8a:8d:3d:41:12:ae:f1:7f:
            8d:d3:10:ac:fb:33:51:5d:0c:1b:dc:23:5f:95:d5:6d:
            c6:1d:e5:ed:13:8b:16:41:89:5b:4d:de:c0:c7:56:a2:
            48:82:38:32:5a:99:d5:21:20:c5:0d:5c:ea:0c:84:aa
        Fingerprint (MD5):
            EF:76:A3:6C:09:4E:BC:6B:87:76:A3:35:70:1F:B2:C4
        Fingerprint (SHA1):
            BB:1C:20:4B:79:3A:F1:49:F0:83:FB:CC:9C:56:10:D3:06:97:AA:07
    
        Certificate Trust Flags:
            SSL Flags:
                Valid CA
                Trusted CA
                User
                Trusted Client CA
            Email Flags:
                User
            Object Signing Flags:
                User

Procedure续订过期的 CA 签名服务器证书

当 CA 签名服务器证书(公匙和私匙)过期时,您可以通过以下步骤续订。您也可以使用 Directory Server 管理控制台执行该任务。

  1. 从证书授权机构获得更新的 CA 签名服务器证书。

  2. 接收到更新证书后,安装该证书。


    msgcert renew-cert cert_alias cert_file
    

Procedure导出和导入 CA 签名服务器证书

在某些情况下,您可能需要导出证书,以便以后可以导入该证书(例如将其导入另一个主机)。您也可以使用 Directory Server 管理控制台执行该任务。

  1. 导出证书。


    msgcert export-cert [-o OUTPUT_FILE] CERT_ALIAS
    

    例如:


    $ ./msgcert export-cert -o /tmp/first-certificate "First Certificate"
    $./msgcert export-cert -o /tmp/first-server-certificate Server-Cert
    Choose the PKCS#12 file password:
    Confirm the PKCS#12 file password:
    $ls /tmp
    first-server-certificate
    /tmp/first-certificate
  2. 导入证书。


    $ msgcert import-cert  CERT_FILE
    

    例如,导入证书


    $ msgcert import-cert /tmp/first-server-certificate
    Enter the PKCS#12 file password:
    $ 

23.5.2 启用 SSL 并选择加密算法

您可以使用控制台启用 SSL 并选择 Messaging Server 可以在其与客户端的加密通信中使用的加密算法集。您也可以使用 msgcert 实用程序安装 SSL 证书,并运行相应的 configutil 或编辑启用此特定服务的 SSL 所需的相应配置文件。

23.5.2.1 关于加密算法

加密算法是用于在加密进程中加密和解密数据的算法。某些加密算法比其他加密算法强大,这意味着经这些算法保密的邮件更难被未经授权的用户译出。

加密算法通过将密钥(一个长编号)应用到数据中来对数据进行操作。通常,加密过程中加密算法使用的密钥越长,没有正确的解秘密钥来解密数据则越难。

客户端用 Messaging Server 启动 SSL 连接时,客户端会让服务器了解客户端会将何种加密算法和密钥长度用于加密。在所有加密通信中,双方必须使用同一加密算法。因为有很多通用的加密算法和密钥组合,所以,服务器应当能够灵活地支持加密。Messaging Server 可支持至多 6 种加密算法和密钥长度的组合。

表 23–2 列出了 Messaging Server 支持的可与 SSL 3.0 配合使用的加密算法。有关此表中汇总的信息,可在 Managing Servers with iPlanet Console 中的 Introduction to SSL 一章中获得的更详细的介绍。

表 23–2 适用于 Messaging Server 的 SSL 加密算法

加密算法 

说明 

带有 128 位加密和 MD5 邮件验证的 RC4 

最快的加密算法(通过 RSA 实现)以及强度很高的加密算法和加密密钥的组合。 

带有 168 位加密和 SHA 邮件验证的三重 DES 

一种较慢的加密算法(美国政府标准),但却是最强大的加密算法和加密密钥的组合。 

带有 56 位加密和 SHA 邮件验证的 DES 

较慢的加密算法(美国政府标准)以及普通强度的加密算法和加密密钥组合。 

带有 40 位加密和 MD5 邮件验证的 RC4 

最快的加密算法(通过 RSA 实现)和较低强度的加密算法和加密密钥组合。 

带有 40 位加密和 MD5 邮件验证的 RC2 

较慢的加密算法(通过 RSA 实现)和较低强度的加密算法和加密密钥组合。 

无加密,只有 MD5 邮件验证 

无加密;仅使用用于验证的邮件摘要。 

除非您具备不使用某个特定加密算法的令人信服的理由,否则应当支持所有加密算法。但是,请注意出口法律限制在某些国家/地区使用某些加密算法。同时,在美国出口控制法放宽之前,所生产的某些客户端软件不能使用较高强度的加密。请注意,虽然 40 位加密算法可以阻止偶尔窃听者,但这些算法并不安全,因此将不会阻止蓄意攻击。

要启用 SSL 并选择加密算法,请遵循以下命令行步骤:

要指定一个证书:

configutil -o encryption.rsa.nssslpersonalityssl -v certname

还有基于服务的配置设置,用于设置 SSL 服务器证书昵称。新的 configutil 设置如下所示:

local.imta.sslnicknames 用于 SMTP 和 Submit 服务器; local.imap.sslnicknames 用于 IMAP 服务器;local.pop.sslnicknames 用于 POP 服务器;local.http.sslnicknames 用于 web 邮件服务器。

这些设置与 encryption.rsa.nssslpersonalityssl 设置具有相同的含义,并将覆盖该设置。具体地说,该设置是一个以逗号分隔的 NSS 证书昵称列表。尽管在列表中允许多个昵称,但每个昵称必须表示不同的证书类型(例如,RSA 证书和 DSS 证书),这样,该设置几乎总是只有一个昵称。昵称可以是非限定的(此时将搜索 NSS 软件标记或默认标记),也可以是 security-module: nickname" 格式(此时将在指定的安全模块中搜索该昵称)。这对存储在硬件标记中或默认 NSS 数据库以外的位置的证书来说是必要的。

这并不允许在产品中使用多个 NSS 软件标记。尤其是,对于 IMAP、POP、SMTP 和 HTTP,只存在一个 cert8.db key3.dbsecmod.db。NSS 不允许发生这种情况。


注 –

要能够对外发邮件进行 SSL 加密,则必须修改通道定义以使其包含 tls 通道关键字,例如 maytlsmusttls 等。有关更多信息,请参见12.4.8 传输层安全性手册。


23.5.3 设置基于证书的登录

除了基于密码的验证之外,Sun Java System 服务器还支持通过检查用户的数字证书进行的验证。在基于证书的验证中,客户端建立与服务器之间的 SSL 会话并将用户的证书提交给服务器。然后,服务器将鉴定提交的证书是否真实。如果证书有效,则认为用户经过验证。

要将 Messaging Server 设置为基于证书登录,请执行以下操作:

Procedure设置基于证书的登录

  1. 为您的服务器获取服务器证书。(有关详细信息,请参见23.5.1 获得证书

  2. 运行“证书设置向导”以安装所有可信的证书授权机构证书,这些证书授权机构将向服务器要验证的用户颁发证书。(有关详细信息,请参见23.5.1.6 安装可信 CA 证书

    请注意,只要服务器的数据库中至少有一个可信的 CA,服务器就会要求每个连接的客户端提供客户端证书。

  3. 打开 SSL。

    (有关详细信息,请参见23.5.2 启用 SSL 并选择加密算法

  4. (可选)编辑服务器的 certmap.conf 文件以便服务器根据提交的证书中的信息来搜索相应的 LDAP 用户目录。

    如果用户的证书中的电子邮件地址与用户的目录条目中的电子邮件地址相匹配,则不必编辑 certmap.conf 文件,并且无需针对用户条目中的证书优化搜索或验证已提交的证书。

    有关 certmap.conf 的格式和可以进行的更改的详细信息,请参见 Managing Servers with iPlanet Console 中的 SSL 一章。

    执行这些步骤后,当客户端建立一个 SSL 会话以便用户可以登录到 IMAP 或 HTTP 时,Messaging Server 会要求客户端提供用户证书。如果客户端所提交的证书由服务器建立为可信的 CA 颁发,并且如果证书中的标识与用户目录中的一项相匹配,则用户经过验证并被授予访问权限(取决于管理该用户的访问控制规则)。

    无需禁用基于密码的登录即可启用基于证书的登录。如果允许基于密码的登录(此为默认状态),并且您已经执行了本节中说明的任务,则同时支持基于密码的和基于证书的登录。在这种情况下,如果客户端建立 SSL 会话并提供证书,则使用基于证书的登录。如果客户端未使用 SSL 或未提供证书,则服务器会要求提供密码。

23.5.4 如何使用 SMTP 代理服务器优化 SSL 性能

由于 SMTP 代理服务器在 SMTP 协议中添加了附加等待时间,大多数站点不应使用 SMTP 代理服务器。但是,对于大量使用 SSL 以保护 SMTP 连接的大规模站点,它可能希望通过对服务器上的所有协议均执行全部 SSL 操作来最大化在 SSL 加速器硬件上的投资,这些操作即 SSL 和代理服务器。邮件队列位于独立的 MTA 计算机上时,SMTP 代理服务器允许前端代理服务器处理 SSL。可以单独配置和购买对每个任务优化硬件的此方法。

有关如何安装 SMTP 代理服务器的说明,请参见《Sun Java Communications Suite 5 Deployment Planning Guide》中的“Using the MMP SMTP Proxy”23.8 启用 POP Before SMTP