Sun Java System Messaging Server 6.3 管理指南

23.5 配置加密和基於憑證的認證

本節包含以下小節:

Messaging Server 使用傳輸層安全性 (TLS) 協定,也稱為安全通訊端層 (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 伺服器使用符合公開金鑰加密系統 (PKCS) #11 API 的模組存取金鑰和憑證資料庫。指定硬體裝置的 PKCS #11 模組通常可從其供應商處獲得,並且必須安裝到 Messaging Server 中,然後 Messaging Server 才能使用該裝置。預先安裝的「Netscape 內部 PKCS # 11 模組」支援單一內部軟體記號,該記號使用伺服器的內部憑證資料庫。

為憑證設定伺服器包括為憑證及其金鑰建立資料庫以及安裝 PKCS #11 模組。如果您不使用外部硬體記號,可以在您的伺服器上建立內部資料庫,並使用內部預設模組 (該模組是 Messaging Server 的組成部分)。如果要使用外部記號,可以連線硬體智慧卡閱讀機並安裝其 PKCS #11 模組。


備註 –

在以下小節中,會提到主控台或 Directory Server 主控台。這是指 Directory Server 6 版之前的版本。若是 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,您必須使用自行簽署的憑證或包含外部憑證授權機構 (CA) 的公開金鑰基礎架構 (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管理自行簽署的憑證

若使用憑證進行測試,可以使用自行簽署的憑證。在部署配置中,可能會偏好使用信任的憑證授權機構 (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

    自行簽署的憑證有效期為三個月。

  2. 請在自行簽署的憑證過期時,以此指令更新憑證:


    msgcert renew-selfsign-cert cert_alias
    

23.5.1.6 安裝信任的 CA 之憑證

使用 ./msgcert add-cert 安裝憑證授權機構的憑證。CA 憑證可驗證 CA 本身的身份。伺服器會在認證用戶端和其他伺服器的程序中使用這些 CA 憑證。

例如,如果您將企業設定為除了進行基於密碼的認證之外還要進行基於憑證的用戶端認證 (請參閱第157 頁的「設定基於憑證的登入」),則需要安裝所有發放用戶端可能提供之憑證的可信任 CA 的 CA 憑證。這些 CA 可以是您組織內部的,也可以是外部的,代表商業授權機構、政府授權機構或其他企業。(如需有關使用 CA 憑證進行認證的更多詳細資訊,請參閱「Managing Servers With iPlanet Console 5.0」中的「Introduction to Public-Key Cryptography」。)

Messaging Server 在安裝後,最初只包含數個商業 CA 的 CA 憑證。如果您需要增加其他商業 CA 或您的企業要開發自己的 CA 以供內部使用 (使用 Sun Java System Certificate Server),則需要取得並安裝其他 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 是由 RFCs 1421 到 1424 指定的私人增強郵件 (Privacy Enhanced Mail) 格式,用來以 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 會提供網站供您自動下載憑證。其他 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 產生傳送郵件伺服器時,預設會有名為 Server-Cert 的預設憑證。「與發行者相同」等文字表示預設憑證為自行簽署的伺服器憑證。例如:


    # ./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.dbkey3.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 協定的額外延遲時間。但是,廣泛使用 SSL 來保護 SMTP 連線的大型網站可能希望使他們在 SSL 加速器硬體方面的投資收益最大化,方法是在專用於 SSL 和代理的伺服器上對所有協定執行所有 SSL 作業。SMTP 代理允許透過前端代理伺服器處理 SSL,而在單獨的 MTA 機器上處理郵件佇列。這樣,為每項作業最佳化的硬體便可分別配置和購買。

如需有關如何安裝 SMTP 代理的說明,請參閱「Sun Java Communications Suite 5 Deployment Planning Guide」中的「Using the MMP SMTP Proxy」23.8 啟用 POP Before SMTP