Sun Java System Messaging Server 6.3 管理指南

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:
    $