Sun ONE logo      上一個      目錄      索引      下一個     

Sun ONE Web Server 6.1 管理員指南

第 6 章
使用證書和金鑰

本章描述了如何使用證書和金鑰認證來保護 Sun ONE Web Server 6.1 的安全。還描述了如何啟動用於保護您的資料、拒絕入侵者存取和允許您要的使用者存取之各種安全功能。Sun ONE Web Server 6.1 結合了所有 Sun ONE 伺服器的安全架構:它建立在業界標準和公共協定的基礎之上,以取得最大的相互可操作性和一致性。

閱讀本章之前,您應該瞭解公開金鑰加密的基本概念。這些概念包括加密和解密、公開金鑰和私密金鑰、數位證書以及加密協定。如需更多資訊,請參閱 「Introduction to SSL」。

以下各節詳細解釋了保護 Web 伺服器安全的程序:


基於證書的認證

認證是確認身份的程序。在網路互動環境中,認證是一方對另一方的確信識別。證書是支援認證的一種方式。

使用證書進行認證

證書中包含指定個人、公司或其他實體名稱,並證明證書中所包含的公開金鑰屬於上述實體的數位資料。用戶端和伺服器都可以擁有證書。

證書由認證機構 (即 CA) 核發並進行數位簽名。CA 可以是透過網際網路出售證書的公司,也可以是負責為企業網路或企業間網路核發證書的部門。您可以決定將充分信任的 CA 作為驗證其他使用者身份的機構。

除了公開金鑰和由證書識別的實體名稱之外,證書還包括過期日期、核發該證書的 CA 名稱和核發該證書的 CA 之「數位簽名」。如需有關證書內容和格式的更多資訊,請參閱「Introduction to SSL」。


備註

必須首先安裝伺服器證書,然後才能啟動加密。


伺服器認證

伺服器認證指用戶端對伺服器進行的確信識別;即對假設負責特定網路位址上伺服器的組織進行識別。

用戶端認證

用戶端認證指伺服器對用戶端進行的確信識別;即對假設使用用戶端軟體的使用者進行識別。用戶端可以擁有多個證書,就像使用者可以具有數個不同的識別部分一樣。

虛擬伺服器證書

每個虛擬伺服器可以擁有不同的證書資料庫。每個虛擬伺服器資料庫可以包含多個證書。虛擬伺服器的每個實例也可以擁有不同的證書。


建立可信任的資料庫

申請伺服器證書之前,必須建立一個可信任的資料庫。在 Sun ONE Web Server 中,Administration Server 和每個伺服器實例都可以擁有自己的可信任資料庫。可信任的資料庫只能在本機機器上建立。

建立可信任的資料庫時,您需要指定將用於金鑰對檔案的密碼。您還需要此密碼來啟動使用加密通訊的伺服器。如需有關變更密碼的注意事項清單,請參閱「變更密碼或 PIN

在可信任的資料庫中,可以建立和儲存公開金鑰和私密金鑰 (稱為金鑰對檔案)。金鑰對檔案用於 SSL 加密。申請和安裝伺服器證書時將用到該金鑰對檔案。安裝證書之後,會將證書儲存在可信任的資料庫中。金鑰對檔案以加密的形式儲存在以下目錄中:

Administration Server 只能有一個可信任的資料庫。每個伺服器實例都可以擁有自己可信任的資料庫。虛擬伺服器將採用為其伺服器實例建立的可信任的資料庫。

建立可信任的資料庫

若要建立可信任的資料庫,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Create Database] 連結。
  4. 輸入資料庫的密碼。
  5. 重複以上步驟。
  6. 按一下 [OK]。
  7. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

使用 password.conf

依預設,Web 伺服器會在啟動前提示管理員提供金鑰資料庫密碼。如果您希望能夠重新啟動無人看管的 Web 伺服器,則需要將該密碼儲存在 password.conf 檔案中。僅當您的系統受到適當保護時才能這樣做,以免洩漏該檔案和金鑰資料庫。

正常情況下,無法啟動帶有 /etc/rc.local/etc/inittab 檔案且已啟用 SSL 的 UNIX 伺服器,因為該伺服器會在啟動之前要求輸入密碼。儘管可以透過將密碼以一般文字格式儲存在某個檔案中來自動啟動已啟用 SSL 的伺服器,但建議不要使用這種方法。伺服器的 password.conf 檔案應為超級使用者或安裝伺服器的使用者所擁有,並且只有所有者對其具有讀取和寫入許可權限。

在 UNIX 上,將啟用了 SSL 的伺服器的密碼保留在 password.conf 檔案中會帶來很大的安全性風險。可以存取該檔案的任何使用者都可以存取已啟用 SSL 的伺服器之密碼。將啟用了 SSL 的伺服器密碼保留在 password.conf 檔案中之前,請考量可能帶來的安全性風險。

在 Windows 上,如果安裝了 NTFS 檔案系統,則應該限定對 password.conf 檔案的存取權限 (即使不使用該檔案),從而保護包含該檔案的目錄。管理伺服器使用者和 Web 伺服器使用者應該具有對該目錄的讀取和寫入許可權。保護該目錄可以防止其他使用者建立偽 password.conf 檔案。您無法透過限定對 FAT 檔案系統上的目錄或檔案的存取來保護它們。

自動啟動已啟用 SSL 的伺服器

如果您不考量安全性風險,請執行下列步驟來自動啟動已啟用 SSL 的伺服器:

  1. 確定已啟用 SSL。
  2. 在伺服器實例的 config 子目錄中建立新的 password.conf 檔案。
    • 如果使用的是伺服器隨附的內部 PKCS#11 軟體加密模組,請輸入以下資訊:
    • internal:your_password

    • 如果使用的是其他 PKCS#11 模組 (用於硬體加密或硬體加速器),請指定後面隨附密碼的 PKCS#11 模組名稱。例如︰
    • nFast:your_password

  3. 停止並重新啟動伺服器,以使新設定生效。

即使建立了 password.conf 檔案,您也會在啟動 Web 伺服器時始終收到要求提供密碼的提示。


申請和安裝 VeriSign 證書

VeriSign 是 Sun ONE Web Server 的首選認證機構。VeriSign 的 VICE 協定可以簡化證書申請程序。VeriSign 的優勢在於能夠直接將證書傳回伺服器。

為伺服器建立可信任的證書資料庫後,您便可以申請一個證書並將其提交給認證機構 (CA)。如果公司有自己的內部 CA,則可以向其申請證書。如果計劃從商業 CA 處購買證書,請選擇一個 CA 並索要所需的特定格式資訊。可以從 [Request a Certificate] 頁面中取得可用認證機構清單,該清單中包括指向其網站的連結。如需有關 CA 所需內容的更多資訊,請參閱藉由伺服器管理員和 [Request a Certificate] 下的 [Server Manager Security Pages] 所取得的認證機構清單。

Administration Server 只能有一個伺服器證書。每個伺服器實例都可以擁有自己的伺服器證書。您可以為每個虛擬伺服器選取一個伺服器實例證書。

申請 VeriSign 證書

若要申請 VeriSign 證書,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Request VeriSign Certificate] 連結。
  4. 複查所需的步驟。
  5. 按一下 [OK]。
  6. 依循 VeriSign 中的程序進行作業。

安裝 VeriSign 證書

如果申請了 VeriSign 證書並獲得批準,該證書應在一到三天的時間內顯示在 [Install VeriSign Certificate] 頁面的下拉式清單中。若要安裝 VeriSign 證書,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Install VeriSign Certificate] 連結。
  4. 除非您要使用外部加密模組,否則請從加密模組的下拉式清單中選擇內部 (軟體) 模組。
  5. 輸入金鑰對檔案密碼或 PIN。
  6. 從下拉式清單選取要擷取的異動 ID。
  7. 通常選取最後一個。

  8. 按一下 [OK]。
  9. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。


申請和安裝其他伺服器證書

除了 VeriSign,還可以從其他認證機構申請和安裝證書。可以藉由伺服器管理員和 [Request a Certificate] 下的 [Server Manager Security Pages] 取得 CA 清單。您的公司或組織可能會提供自己的內部證書。本節描述了如何申請和安裝這些其他類型的伺服器證書。

CA 所需的資訊

開始申請程序之前,請確定您瞭解 CA 所需的資訊。無論從商業 CA 處還是內部 CA 處申請伺服器證書,都需要提供以下資訊:

所有這些資訊結合為一系列屬性值對 (稱為區別名稱 [DN]),用於唯一識別證書的主題。

如果從商業 CA 處購買證書,則必須在 CA 核發證書之前與之聯絡,以查明他們所需的其他資訊。多數 CA 都要求您提供身份證明。例如,CA 需要驗證您的公司名稱和公司授權管理伺服器的使用者,並且可能會詢問您是否具有使用所提供資訊的合法權限。

某些商業 CA 向出具較為詳細身份證明的組織或個人提供內容更為詳細、準確的證書。例如,您可以購買一個證書,宣告 CA 不僅驗證了您是 www.sun.com 電腦的合法管理員,而且驗證了您的公司是已從事三年商業活動且無重大客戶訴訟案件的公司。

申請其他伺服器證書

若要申請證書,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Request a Certificate] 連結。
  4. 選取這是一個新證書,還是一個更新的證書。
  5. 許多證書在一段時間 (例如六個月或一年) 後會過期。某些 CA 會自動給您傳送一個更新的證書。

  6. 若要指定提交證書申請的方式,請執行下列步驟:
    • 如果 CA 期望以電子郵件訊息的形式接收申請,請核取 [CA Email] 並輸入該 CA 的電子郵件位址。如需 CA 的清單,請按一下 [List of available certificate authorities]。
    • 如果要從使用 Netscape 證書伺服器的內部 CA 處申請證書,請按一下 [CA URL] 並輸入該證書伺服器的 URL。此 URL 應指向用於處理證書申請的證書伺服器程式。範例 URL 如下所示:https://CA.mozilla.com:444/cms
  7. 從下拉式清單選取申請證書時需要使用的金鑰對檔案的加密模組。
  8. 輸入金鑰對檔案的密碼。
  9. 該密碼便是您建立可信任的資料庫時所指定的密碼,除非您選取內部模組以外的加密模組。伺服器將使用該密碼取得私密金鑰並對傳送給 CA 的訊息進行加密。然後,將您的公開金鑰和加密訊息傳送給 CA。CA 會使用公開金鑰來解密您的訊息。

  10. 輸入您的身份識別資訊。
  11. 此資訊的格式因 CA 而異。如需有關這些欄位的一般描述,請參閱藉由伺服器管理員和 [Request a Certificate] 下的 [Server Manager Security Pages] 所取得的認證機構清單。請註意,更新的證書通常不需要此資訊中的大部分內容。

  12. 仔細檢查這些內容以確定其準確性。
  13. 資訊越準確,批準證書的速度可能就越快。如果要將申請傳送至證書伺服器,便會在提交申請之前提示您驗證表單資訊。

  14. 按一下 [OK]。
  15. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

伺服器會產生包含您的資訊之證書申請。該申請包含透過私密金鑰建立的數位簽名。CA 使用數位簽名來驗證該申請未在從伺服器機器向 CA 的路由過程中被竄改。只極少數情況下申請才會被竄改,這時,CA 通常會透過電話與您聯絡。

如果選擇透過電子郵件傳送申請,伺服器將撰寫內含申請的電子郵件訊息並將其傳送給 CA。通常,證書會透過電子郵件傳回。如果您指定了指向證書伺服器的 URL,伺服器便會使用 URL 向證書伺服器提交申請。您可以透過電子郵件或其他方式取得回應,這取決於 CA。

如果 CA 同意向您核發證書,便會通知您。多數情況下,CA 會透過電子郵件向您傳送證書。如果您的組織正在使用證書伺服器,則可以使用證書伺服器的表單搜尋證書。


備註

並非每個從商業 CA 處申請證書的使用者都會取得證書。很多 CA 在向您核發證書之前都需要您提供身份證明。而且,要獲得批準可能要花費一天到兩個月的時間。您負責及時向 CA 提供所有必要資訊。


收到證書後,便可以進行安裝。在此期間,您仍然可以使用未安裝 SSL 的伺服器。

安裝其他伺服器證書

當您收到從 CA 發回的證書時,該證書將透過公開金鑰加密,以便只有您才可以將其解密。只有輸入正確且可信任的資料庫密碼,才能解密和安裝證書。

有三種類型的證書:

證書鏈是由各個認證機構依次簽名的一系列階層式證書。CA 證書用於識別認證機構 (CA) 和為該機構核發的證書簽名。反過來,CA 證書又可以由父 CA 的 CA 證書簽名,如此類推,直到根 CA。


備註

如果 CA 未向您自動傳送其證書,則需要申請證書。很多 CA 會在電子郵件中放入他們的證書和您的證書,您的伺服器將同時安裝這兩個證書。


當您從 CA 收到證書時,該證書已透過公開金鑰加密,以便只有您可以將其解密。安裝該證書時,伺服器將使用您指定的金鑰對檔案密碼將其解密。如下所述,您可以將電子郵件儲存在伺服器可以存取的位置中,也可以複製電子郵件的文字並準備將其貼到 [Install Certificate] 表單中。

安裝證書

若要安裝證書,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Install Certificate] 連結。
  4. 核取要安裝的證書類型:
    • 「本伺服器」,適用於僅與您的伺服器關聯的單一證書。
    • 「伺服器證書鏈」,用於要包含在證書鏈中的 CA 證書。
    • 「可信任的認證機構 (CA)」,用於某可信任 CA 的證書,該 CA 將作為用戶端認證的可信任 CA 進行使用。
  5. 從下拉式清單選取加密模組。
  6. 輸入金鑰對檔案密碼。
  7. 如果該證書的名稱是此伺服器實例中使用的唯一名稱,請將證書名稱欄位保留為空白,除非出現以下情況:
    • 多個證書將用於虛擬伺服器
    • 輸入伺服器實例中唯一的證書名稱

    • 使用了內部模組以外的加密模組
    • 在單一加密模組中輸入所有伺服器實例中唯一的證書名稱

      如果輸入了名稱,該名稱會顯示在 [Manage Certificates] 清單中,並且應為描述性名稱。例如,「United States Postal Service CA」是某個 CA 的名稱,而「VeriSign Class 2 Primary CA」則同時描述了 CA 和證書的類型。如果未輸入證書名稱,則應套用預設值。

  8. 選取以下任一選項:
    • [Message is in this file],並輸入已儲存的電子郵件的完整路徑名稱
    • [Message text] (帶標頭),並貼上電子郵件文字
    • 如果複製並貼上文字,請確定包括內含起始和終止連字符號的標頭「Begin Certificate」和「End Certificate」。

  9. 按一下 [OK]。
  10. 選取以下任一選項:
    • [Add Certificate],如果要安裝新證書。
    • [Replace Certificate],如果要安裝更新的證書。
  11. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

證書將儲存在伺服器的證書資料庫中。檔名為 <alias>-cert8.db。例如:


升級時移轉證書

如果要從 iPlanet Web Server 4.1 或 6.0 進行遷移,您的檔案 (包括可信任的資料庫和證書資料庫) 會被自動更新。

金鑰對檔案和證書只有在伺服器啟用了安全性時才能被遷移。也可以使用 [Administration Server] 頁面和 [Server Manager] 頁面中的 [Security] 標籤自行遷移金鑰和證書。

在先前版本中,證書和金鑰對檔案依別名進行參考,該別名可以由多個伺服器實例使用。Administration Server 管理全部的別名及其委托證書。在 Sun ONE Web Server 6.1 中,Administration Server 和每個伺服器實例都有自己的證書和金鑰對檔案,稱為可信任的資料庫,而非別名。

您可以藉由 Administration Server (為其自身) 或 Server Manager (為伺服器實例) 管理可信任的資料庫及其委托證書,後者包括伺服器證書和包含的全部證書機構。證書和金鑰對資料庫檔案現在依據使用它們的伺服器實例命名。如果是在先前版本中,多個伺服器實例共用同一個別名,遷移時將為新伺服器實例重新命名證書和金鑰對檔案。

將遷移與伺服器實例關聯的整個可信任的資料庫。以前的資料庫中列出的全部認證機構都將遷移到 Sun ONE Web Server 6.1 資料庫中。如果出現重複的 CA,請使用以前的 CA,直到它過期。請勿嘗試刪除重複的 CA。

使用內建根證書模組

Sun ONE Web Server 6.1 隨附的可動態載入的根證書模組包括了許多 CA (其中包括 VeriSign) 的根證書。根證書模組允許您將根證書升級到更高的版本,且方法比以前容易的多。以前,您需要逐個刪除舊的根證書,然後再逐個安裝新的根證書。現在若要安裝常用的 CA 證書,則可以只將根證書模組檔案更新到更高的版本,因為它在以後版本的 Sun ONE Web Server 或 Service Packs 中都可用。

因為根證書是作為 PKCS#11 加密模組執行的,所以絕不能刪除該模組包含的根證書,並且在管理這些證書時也不會提供刪除證書的選項。若要從伺服器實例中移除根證書,可以透過刪除伺服器 alias 檔案中的以下內容來停用根證書模組:

如果日後要復原根證書模組,則可以將 bin/https/lib (UNIX 和 HP) 或 bin\https\bin (Windows) 的副檔名複製回 alias 子目錄。

可以修改根證書的信任資訊。信任資訊將寫入正在編輯的伺服器實例的證書資料庫中,而非返回至根證書模組本身。


管理證書

您可以檢視、刪除或編輯安裝在伺服器上的各種證書的信任設定。其中包括您自己的證書和來自 CA 的證書。

若要管理證書清單,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Manage Certificates] 連結。
    • 如果要使用內部加密模組管理預先配置的證書,將會顯示所有已安裝證書的清單,其中包括證書的類型和有效日期。所有證書都儲存在 server_root/alias 目錄中。
    • 如果要使用外部加密模組 (例如硬體加速器),則需要先為每個特定模組輸入密碼,然後按一下 [OK]。證書清單將會更新,以便在模組中包含這些證書。
  4. 按一下要管理的 [Certificate Name]。
  5. 螢幕上會顯示 [Edit Server Certificate] 頁面,其中包含該證書類型的管理選項。只有 CA 證書才允許您設定或取消設定用戶端信任。某些外部加密模組將不允許刪除證書。

    Edit Server Certificate
    顯示 [Edit Server Certificate] 視窗的圖。

  6. 在 [Edit Server Certificate] 視窗中,您可以選取以下選項:
    • [Delete Certificate] 或 [Quit],適用於內部取得的證書
    • [Set client trust]、[Unset server trust] 或 [Quit],適用於 CA 證書
  7. 按一下 [OK]。
  8. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

證書資訊中包含擁有者和核發證書的機構。

信任設定允許您設定用戶端信任或取消設定伺服器信任。對於 LDAP 伺服器證書,伺服器必須被信任。


安裝和管理 CRL 和 CKL

證書撤銷清單 (CRL) 和洩漏的金鑰清單 (CKL) 能夠清楚地列出用戶端或伺服器使用者不應再信任的所有證書和金鑰。如果證書中的資料發生變更 (例如,某位使用者在證書過期之前變更了辦公室或離開了組織),則該證書將被廢止,其資料將顯示在 CRL 中。如果金鑰被竄改或被洩漏,則該金鑰及其資料將顯示在 CKL 中。CRL 和 CKL 都由 CA 產生並定期更新。

安裝 CRL 或 CKL

若要從 CA 處取得 CRL 或 CKL,請執行下列步驟:

  1. 取得 CA 的 URL 以下載 CRL 或 CKL。
  2. 在瀏覽器中輸入 URL 以存取該網站。
  3. 依據 CA 的說明將 CRL 或 CKL 下載到本端目錄。
  4. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  5. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  6. 按一下 [Install CRL/CKLs] 連結。
  7. 選取以下任一選項:
    • Certificate Revocation List
    • Compromised Key List
  8. 輸入關聯檔案的完整路徑名稱。
  9. 按一下 [OK]。
    • 如果選取了 [Certificate Revocation List],螢幕上會顯示 [Add Certificate Revocation List] 頁面,其中列出了 CRL 資訊。
    • 如果選取了 [Compromised Key List],螢幕上會顯示 [Add Compromised Key List] 頁面,其中列出了 CKL 資訊。

      備註

      如果資料庫中已存在 CRL 或 CKL 清單,螢幕上會顯示 [Replace Certificate Revocation List] 或 [Replace Compromised Key List] 頁面。


  10. 按一下 [Add]。
  11. 按一下 [OK]。
  12. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

管理 CRL 和 CKL

若要管理 CRL 和 CKL,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Manage CRL/CKLs] 連結。
  4. 螢幕上會顯示 [Manage Certificate Revocation Lists /Compromised Key Lists] 頁面,其中列出了所有已安裝的伺服器 CRL 和 CKL 及其有效日期。

  5. 從 [Server CRLs] 或 [Server CKLs] 清單中選取 [Certificate Name]。
  6. 選擇以下選項:
    • Delete CRL
    • Delete CKL
  7. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。


設定安全性喜好設定

取得證書後,便可以開始保護您的伺服器。Sun ONE Web Server 提供了數個安全性元素。

加密是一個轉換資訊,使得僅有預定接受者才能理解它的過程。解密是轉換加密資訊以使其重新變得可以理解的過程。Sun ONE Web Server 6.1 支援 SSL 和 TLS 加密協定。

密碼是一種用於加密或解密的加密演算法 (一種數學函式)。SSL 和 TLS 協定包含大量密碼組。某些密碼會比其他密碼更強大、更安全。一般而言,密碼使用的位元越多,便越難將資料解密。

在任何雙向加密過程中,雙方都必須使用相同的密碼。由於有大量密碼可供使用,因此需要讓伺服器使用最常用的密碼。

在安全連線過程中,用戶端和伺服器都同意使用可用於通訊的最強密碼。您可以透過 SSL2、SSL3 和 TLS 協定選擇密碼。


備註

由於在 SSL 2.0 版本之後對 SSL 的安全性和效能進行了各種改進,因此除非用戶端無法使用 SSL 3,否則不要使用 SSL 2。使用 SSL 2 密碼無法為用戶端證書提供安全保證。


單獨的加密過程並不足以保護伺服器機密資訊的安全。必須配合使用金鑰與加密密碼,以便產生真正的加密結果,或解密以前加密的資訊。加密程序使用以下兩種金鑰來取得此結果:公開金鑰和私密金鑰。使用公開金鑰加密的資訊只能使用關聯的私密金鑰進行解密。公開金鑰作為證書的一部分進行發佈,因此,只有關聯的私密金鑰受到保護。

如需有關各種密碼組的描述以及金鑰和證書的更多資訊,請參閱「Introduction to SSL」。

若要指定伺服器可以使用的密碼,請在清單中核取這些密碼。除非有不使用特定密碼的充分理由,否則應該全部核取。不過,您可能不希望啟用非最佳化加密的密碼。


警告

請勿選取 [No Encryption, only MD5 message authentication]。如果用戶端沒有其他可用的密碼,伺服器會預設為使用此設定且不進行加密。


SSL 和 TLS 協定

Sun ONE Web Server 6.1 支援用於加密通訊的安全套接層 (SSL) 協定和傳輸層安全性 (TLS) 協定。SSL 和 TLS 是獨立的應用程式,並且可以在其上透明地分層排列更進階的協定。

SSL 和 TLS 協定支援各種用於伺服器和用戶端的相互認證、傳輸證書和建立階段作業金鑰的密碼。用戶端和伺服器可以支援各種密碼組或密碼集,這取決於各種因素,例如所支援的協定、公司有關加密強度的策略以及政府對加密軟體的出口限定。在其他函式中,SSL 和 TLS 交換協定將決定伺服器和用戶端如何協商以確定將用於通訊的密碼組。

使用 SSL 與 LDAP 通訊

您應該要求 Administration Server 使用 SSL 與 LDAP 進行通訊。若要啟用 Administration Server 上的 SSL,請執行下列步驟:

  1. 存取 [Administration Server] 並選擇 [Global Settings] 標籤。
  2. 按一下 [Configure Directory Service] 連結。
  3. 選取 [Yes] 以使用安全套接字層 (SSL) 進行連線。
  4. 按一下 [Save Changes]。
  5. 按一下 [OK] 以將您的連接埠變更為使用 SSL 的 LDAP 標準連接埠。

為偵聽套接字啟用安全性

您可以透過以下方式來保護伺服器偵聽套接字的安全:

開啟安全性

您必須開啟安全性,然後才能為偵聽套接字配置其他安全性設定。您可以在建立新的偵聽套接字或編輯現有偵聽套接字時開啟安全性。

建立偵聽套接字時開啟安全性

若要在建立新偵聽套接字時開啟安全性,請執行下列步驟:

  1. 存取 [Server Manager] 並從下拉式清單中選取要在其中建立偵聽套接字的伺服器實例。
  2. 選取 [Preferences] 標籤 (如果尚未顯示)。
  3. 選擇 [Edit Listen Sockets] 連結。
  4. 螢幕上會顯示 [Edit Listen Sockets] 頁面。

  5. 按一下 [New] 按鈕。
  6. 螢幕上會顯示 [Add Listen Socket] 頁面。

  7. 輸入所需資訊並選取預設的虛擬伺服器。
  8. 若要開啟安全性,請從 [Security] 下拉式清單選取 [Enabled]。
  9. 按一下 [OK]。
  10. 按一下 [Apply],然後按一下 [Restart] 以使變更生效。

    備註

    您需要在建立偵聽套接字後,使用 [Edit Listen Sockets] 連結來配置安全性設定。


編輯偵聽套接字時開啟安全性

您也可以在經由 Administration Server 或 Server Manager 編輯偵聽套接字時開啟安全性。若要在編輯偵聽套接字時開啟安全性,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Security] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 選取 [Preferences] 標籤 (如果尚未顯示)。
  4. 選擇 [Edit Listen Sockets] 連結。
  5. 螢幕上會顯示 [Edit Listen Sockets] 頁面。

  6. 若要編輯偵聽套接字,請按一下要編輯的偵聽套接字的 [Listen Socket ID]。
  7. 螢幕上會顯示 [Edit Listen Socket] 頁面。

  8. 若要為偵聽套接字開啟安全性,請從 [Security] 下拉式清單選取 [Enabled]。
  9. 按一下 [OK]。
  10. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

為偵聽套接字選取伺服器證書

您可以在 Administration Server 或 Server Manager 中配置偵聽套接字,以便使用您已申請並安裝的伺服器證書。


備註

必須至少安裝一個證書。


若要為偵聽套接字選取伺服器證書以進行使用,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Preferences] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單選取伺服器實例。

  3. 選擇 [Edit Listen Sockets] 連結。
  4. 螢幕上會顯示 [Edit Listen Sockets] 頁面。

  5. 若要編輯偵聽套接字,請按一下要編輯的偵聽套接字的 [Listen Socket ID]。
  6. 螢幕上會顯示 [Edit Listen Socket] 頁面。

  7. 若要為偵聽套接字開啟安全性,請從 [Security] 下拉式清單選取 [Enabled]。

  8. 備註

    如果安裝了外部模組,螢幕上會顯示 [Manage Server Certificates] 頁面,並要求在繼續動作之前輸入外部模組的密碼。


  9. 從 [Server Certificate Name] 下拉式清單中為偵聽套接字選取伺服器證書。
  10. 該清單包含所有已安裝的內部和外部證書。


    備註

    如果未安裝任何伺服器證書,將顯示警告訊息而非 [Server Certificate Name] 下拉式清單。


  11. 按一下 [OK]。
  12. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

選取密碼

為了保護 Web 伺服器的安全,應該啟用 SSL。您可以啟用 SSL 2.0、SSL 3.0 和 TLS 加密協定和選取各種密碼組。可以在 Administration Server 偵聽套接字上啟用 SSL 和 TLS。在 Server Manager 的偵聽套接字上啟用 SSL 和 TLS 將為與該偵聽套接字關聯的所有虛擬伺服器設定安全性喜好設定。

如果希望使用非加密的虛擬伺服器,則必須將其配置為使用相同的偵聽套接字,並且關閉安全性。

預設設定允許使用最常用的密碼。除非有充分理由不使用特定密碼組,否則應該全部使用。如需有關特定密碼的更多資訊,請參閱「Introduction to SSL」。


備註

必須至少安裝一個證書。


tlsrollback 參數的預設和建議設定為 true。這會對伺服器進行配置以偵測截取式版本回轉攻擊的嘗試。為了與某些未正確執行 TLS 規範的用戶端實現相互可操作性,可能需要將此值設定為 false

請注意,將 tlsrollback 設定為 false 會降低連線對版本回轉攻擊的防護能力。版本回轉攻擊是一種機制,第三方可以透過這種機制強制用戶端和伺服器使用安全性較低的早期協定 (例如 SSLv2) 進行通訊。由於 SSLv2 協定中存在眾所週知的缺陷,因此無法偵測到版本回轉攻擊,這將使第三方更容易截取和解密加密的連線。

若要啟用 SSL 和 TLS,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Preferences] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Edit Listen Sockets] 連結。
  4. 螢幕上會顯示 [Edit Listen Sockets] 頁面。對於安全偵聽套接字,[Edit Listen Socket] 頁面中顯示可用的密碼設定。


    備註

    如果未在偵聽套接字上啟用 [Security],則不會列出任何 SSL 和 TLS 資訊。若要使用密碼,請確定已在選取的偵聽套接字上啟用了該安全性。如需更多資訊,請參閱「為偵聽套接字啟用安全性」。


  5. 核取對應於所需加密設定的核取方塊。

    備註

    對於 Netscape Navigator 6.0,請同時核取 [TLS] 和 [SSL3]。對於 TLS 回轉,也要核取 TLS,並確定已停用 SSL3 和 SSL2。


  6. 按一下 [OK]。
  7. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

    備註

    當您在開啟偵聽套接字的安全性之後套用變更時,系統將自動修改 magnus.conf 檔案以顯示安全性已開啟,並且自動指定與該偵聽套接字關聯的所有虛擬伺服器的預設安全性參數。


在伺服器上啟用 SSL 後,它的 URL 將使用 https,而非 http。指向啟用了 SSL 的伺服器上文件的 URL 格式如下:

例如,https://admin.sun.com:443

如果使用預設的安全 http 連接埠號 (443),則無須在 URL 中輸入連接埠號。

全域配置安全性

安裝啟用了 SSL 的伺服器將在 magnus.conf 檔案 (伺服器的主配置檔案) 中為全域安全性參數建立指令項目。必須將安全性設定為「on」,虛擬伺服器的安全性設定才會有效。虛擬伺服器的 SSL 特性可以以伺服器為單位在 server.xml 檔案的 SSLPARAMS 元素中找到。

若要設定 SSL 配置檔案指令的值,請執行下列步驟:

  1. 存取 [Server Manager] 並從下拉式清單中選取虛擬伺服器的伺服器實例。
  2. 確定為要配置的偵聽套接字啟用了安全性。若要進行此動作,請執行下列步驟:
    1. 按一下 [Edit Listen Sockets] 連結。
    2. 按一下要啟用其安全性的偵聽套接字所對應的 [Listen Socket ID]。
    3. 將轉至 [Edit Listen Socket] 頁面。

    4. 從 [Security] 下拉式清單選取 [Enabled]。
    5. 按一下 [OK]。
  3. 按一下 [Magnus Editor] 連結。
  4. 從下拉式清單選取 [SSL Settings] 並按一下 [Manage]。
  5. 輸入以下各參數的值:
    • SSLSessionTimeout
    • SSLCacheEntries
    • SSL3SessionTimeout
  6. 按一下 [OK]。
  7. 按一下 [Apply],然後按一下 [Restart] 以使變更生效。

這些 SSL 配置檔案指令如下所述:

SSLSessionTimeout

SSLSessionTimeout 指令用於控制 SSL2 階段作業的快取。

語法

SSLSessionTimeout seconds

其中 seconds 是快取的 SSL 階段作業保持有效的秒數。預設值為 100。如果指定了 SSLSessionTimeout 指令,秒數的值將自動限定為 5 到 100 之間。

SSLCacheEntries

指定可以快取的 SSL 階段作業的數目。

SSL3SessionTimeout

SSL3SessionTimeout 指令用於控制 SSL3 和 TLS 階段作業快取。

語法

SSL3SessionTimeout seconds

其中 seconds 是快取的 SSL3 階段作業保持有效的秒數。預設值為 86400 秒 (24 小時)。如果指定了 SSL3SessionTimeout 指令,秒數的值將自動限定為 5 到 86400 之間。


使用外部加密模組

Sun ONE Web Server 6.1 支援以下使用外部加密模組 (如智慧卡或記號環) 的方法:

啟動 FIPS-140 加密標準之前,您需要增加 PKCS #11 模組。

安裝 PKCS#11 模組

Sun ONE Web Server 支援公開金鑰加密標準 (PKCS) #11,該標準定義了在 SSL 和 PKCS#11 模組之間通訊所使用的介面。PKCS#11 模組用於指向 SSL 硬體加速器的標準連線。外部硬體加速器的匯入證書和金鑰儲存在 secmod.db 檔案中,該檔案在安裝 PKCs#11 模組時產生。

使用 modutil 工具安裝 PKCS#11 模組

可以使用 modutil 工具並以 .jar 檔案或物件檔案的形式安裝 PKCS#11 模組。

若要使用 modutil 安裝 PKCS#11 模組,請執行下列步驟:

  1. 確定關閉了所有伺服器 (包括 Administration Server)。
  2. 移至包含資料庫的 server_root/alias 目錄
  3. server_root/bin/https/admin/bin 增加至您的 PATH 中。
  4. server_root/bin/https/admin/bin 中找到 modutil
  5. 設定環境。例如:
    • 在 UNIX 上:setenv
    • LD_LIBRARY_PATH server_root/bin/https/lib:${LD_LIBRARY_PATH}

    • 在 IBM-AIX 上:LIBPATH
    • 在 HP-UX 上:SHLIB_PATH
    • 在 Windows 上,將以下內容增加至 PATH

      LD_LIBRARY_PATH server_root/bin/https/bin

      您可以在以下目錄中找到您機器的 PATH:server_root/https-admin/start

  6. 輸入指令:modutil
  7. 將列出各種選項。

  8. 執行所需的動作。
  9. 例如,要在 UNIX 中增加 PCKS#11 模組,您需要輸入:

    modutil -add (PCKS#11 檔案的名稱) -libfile (PCKS#11 的 libfile) -nocertdb -dbdir (您的 db 目錄)。

使用 pk12util

使用 pk12util 可以從內部資料庫中匯出證書和金鑰,並將其匯入內部或外部 PKCS#11 模組。您可以將證書和金鑰始終匯出至內部資料庫,但多數外部記號不會允許您匯出證書和金鑰。依預設,pk12util 使用名為 cert8.dbkey3.db 的證書和金鑰資料庫。

透過 pk12util 匯出

若要從內部資料庫中匯出證書和金鑰,請執行下列步驟:

  1. 移至包含資料庫的 server_root/alias 目錄
  2. server_root/bin/https/admin/bin 增加至您的 PATH 中。
  3. server_root/bin/https/admin/bin 中找到 pk12util
  4. 設定環境。例如:
    • 在 UNIX 上:setenv
    • LD_LIBRARY_PATH/server_root/bin/https/lib:${LD_LIBRARY_PATH}

    • 在 IBM-AIX 上:LIBPATH
    • 在 HP-UX 上:SHLIB_PATH
    • 在 Windows 上,將以下內容增加至 PATH
    • LD_LIBRARY_PATH server_root/bin/https/bin

      您可以在以下目錄中找到您機器的 PATH:server_root/https-admin/start

  5. 輸入指令:pk12util
  6. 將列出各種選項。

  7. 執行所需的動作。
  8. 例如,在 UNIX 中,您需要輸入:

    pk12util -o certpk12 -n Server-Cert [-d /server/alias] [-P https-test-host]

  9. 輸入資料庫密碼。
  10. 輸入 pkcs12 密碼。
透過 pk12util 匯入

若要將證書和金鑰匯入內部或外部 PKCS#11 模組,請執行下列步驟:

  1. 移至包含資料庫的 server_root/alias 目錄
  2. server_root/bin/https/admin/bin 增加至您的 PATH 中。
  3. server_root/bin/https/admin/bin 中找到 pk12util
  4. 設定環境。例如:
    • 在 UNIX 上:setenv
    • LD_LIBRARY_PATH/server_root/bin/https/lib:${LD_LIBRARY_PATH}

    • 在 IBM-AIX 上:LIBPATH
    • 在 HP-UX 上:SHLIB_PATH
    • 在 Windows 上,將以下內容增加至 PATH
    • LD_LIBRARY_PATH server_root/bin/https/bin

      您可以在以下目錄中找到您機器的 PATH:server_root/https-admin/start

  5. 輸入指令:pk12util
  6. 將列出各種選項。

  7. 執行所需的動作。
  8. 例如,在 UNIX 中,您需要輸入:

    pk12util -i pk12_sunspot [-d certdir][-h nCipher][-P https-jones.redplanet.com-jones-]

    -P 必須跟在 -h 之後,並且必須是最後一個引數。

    輸入正確的記號名稱,包括大寫字母和引號之間的空格。

  9. 輸入資料庫密碼。
  10. 輸入 pkcs12 密碼。透過某個外部證書啟動伺服器。

如果伺服器的證書安裝在外部 PKCS#11 模組 (例如,硬體加速器) 中,伺服器將無法使用該證書進行啟動,除非您對 server.xml 進行編輯,或依如下所述來指定證書名稱。

伺服器始終嘗試使用名為「Server-Cert」的證書啟動。但外部 PKCS#11 模組中的證書將在識別碼中包含該模組的某個記號名稱。例如,名為「smartcard0」的外部智慧卡讀取器上安裝的伺服器證書應名為「smartcard0:Server-Cert」。

若要使用安裝在外部模組中的證書啟動伺服器,將需要為執行伺服器的偵聽套接字指定證書名稱。

為偵聽套接字選取證書名稱

若要為偵聽套接字選取證書名稱,請執行下列步驟:


備註

如果未在偵聽套接字上啟用 [Security],則不會列出證書的資訊。若要為偵聽套接字選取證書名稱,首先必須確定已啟用了該套接字上的安全性。如需更多資訊,請參閱「為偵聽套接字啟用安全性」。


  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Preferences] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 選取 [Preferences] 標籤 (如果尚未選取)。
  4. 按一下 [Edit Listen Sockets] 連結。
  5. 螢幕上會顯示 [Edit Listen Sockets] 頁面。

  6. 按一下要與證書關聯的偵聽套接字所對應的 [Listen Socket Id] 連結。
  7. 螢幕上會顯示 [Edit Listen Socket] 頁面。

  8. 從 [Server Certificate Name] 下拉式清單中為偵聽套接字選取伺服器證書。
  9. 該清單包含所有已安裝的內部和外部證書。


    備註

    如果未安裝任何伺服器證書,將顯示警告而非 [Server Certificate Name] 下拉式清單。


  10. 按一下 [OK]。
  11. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

您也可以手動編輯 server.xml 檔案,讓伺服器透過該伺服器證書啟動。將 SSLPARAMS 中的 servercertnickname 屬性變更為:

若要查找 $TOKENNAME 使用的值,請移至伺服器的 [Security] 標籤並選取 [Manage Certificates] 連結。當您登入到儲存 Server-Cert 的外部模組時,$TOKENNAME:$NICKNAME 表單的清單中將顯示其證書。


備註

如果未曾建立可信任的資料庫,則會在為外部 PKCS#11 模組申請或安裝證書之時為您建立一個可信任的資料庫。建立的預設資料庫沒有密碼,且無法存取。外部模組可以工作,但您不能申請和安裝伺服器證書。如果建立的預設資料庫沒有密碼,請使用 [Security] 標籤和 [Create Database] 頁面來設定密碼。


FIPS-140 標準

透過 PKCS#11 API,您可以與執行加密作業的軟體或硬體模組進行通訊。在伺服器上安裝 PKCS#11 之後,您可以對 Sun ONE Web Server 進行配置,以使其與聯邦資訊處理標準 (FIPS)-140 相容。這些程式庫僅包含在 SSL 3.0 版本中。

若要啟用 FIPS-140,請執行下列步驟:

  1. 依據 FIPS-140 中的說明安裝該 Plug-in。
  2. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Preferences] 標籤。
  3. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  4. 按一下 [Edit Listen Sockets] 連結。
  5. 螢幕上會顯示 [Edit Listen Sockets] 頁面。對於安全偵聽套接字,[Edit Listen Socket] 頁面中顯示可用的安全性設定。


    備註

    若要使用 FIPS-140,請確定已在選取的偵聽套接字上啟用了該安全性。如需更多資訊,請參閱「為偵聽套接字啟用安全性」。


  6. 從 SSL 版本 3 下拉式清單選取 [Enabled] (如果尚未選取)。
  7. 核取適當的 FIPS-140 密碼組:
    • (FIPS) 56 位元加密的 DES 和 SHA 訊息認證
    • (FIPS) 168 位元加密的三重 DES 和 SHA 訊息認證
  8. 按一下 [OK]。
  9. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。


設定用戶端安全性需求

執行可保護伺服器安全性的所有步驟後,可以為用戶端設定其他安全性需求。

要求用戶端認證

您可以為 Administration Server 和每個伺服器實例啟用偵聽套接字,以要求用戶端認證。啟用用戶端認證後,必須提供用戶端證書,伺服器才能向查詢傳送回應。

Sun ONE Web Server 支援透過使用戶端證書中的 CA 與簽名用戶端證書時信任的 CA 匹配來驗證用戶端證書。您可以在 Administration Server 的 [Manage Certificates] 頁面中的 [Security] 下檢視簽名用戶端證書時信任的 CA 清單。有四種類型的 CA:

您可以配置 Web 伺服器,以拒絕不具有來自可信任 CA 用戶端證書的所有用戶端。若要接受或拒絕可信任的 CA,必須已經為 CA 設定了用戶端信任。如需更多資訊,請參閱「管理證書」。

如果證書已過期,Sun ONE Web Server 將記錄錯誤、拒絕證書並向用戶端傳回一則訊息。也可以在 Administration Server 的 [Manage Certificates] 頁面中檢視已過期的證書。

您可以對伺服器進行配置,以便從用戶端證書收集資訊並使其與 LDAP 目錄中的使用者項目匹配。這樣可以確定用戶端擁有有效的證書和 LDAP 目錄中的項目。而且還可以確定用戶端證書與 LDAP 目錄中的證書相匹配。若要瞭解如何進行此作業,請參閱「將用戶端證書對映到 LDAP」。

您可以將用戶端證書和存取控制結合使用,以便除了來自可信任的 CA 以外,與證書關聯的使用者還必須與存取控制規則 (ACL) 相匹配。如需更多資訊,請參閱「使用存取控制檔案」。

您也可以處理用戶端證書的資訊。如需更多資訊,請參閱「Sun ONE Web Server 6.1 NSAPI Programmer's Guide」。

申請用戶端認證

若要申請用戶端認證,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager],然後選擇 [Preferences] 標籤。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 按一下 [Edit Listen Sockets] 連結。
  4. 螢幕上會顯示 [Edit Listen Sockets] 頁面。

  5. 按一下要申請用戶端認證的偵聽套接字所對應的 [Listen Socket Id] 連結。
  6. 螢幕上會顯示 [Edit Listen Socket] 頁面。

  7. 若要為偵聽套接字申請用戶端認證,請從 [Client Authentication] 下拉式清單選取 [Required]。
  8. 按一下 [OK]。
  9. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

    備註

    目前,每個 Web 伺服器實例只有一個可信任的證書資料庫。在該伺服器實例下執行的所有安全虛擬伺服器均共用同一個可信任的用戶端 CA 清單。如果兩個虛擬伺服器需要不同的可信任 CA,則這些虛擬伺服器應該在具有單獨可信任資料庫的不同伺服器實例中執行。


將用戶端證書對映到 LDAP

本節介紹 Sun ONE Web Server 用來將用戶端證書對映到 LDAP 目錄中項目的程序。

伺服器從用戶端取得申請後,將在處理申請之前索要用戶端的證書。某些用戶端會在向伺服器傳送申請的同時傳送用戶端證書。


備註

將用戶端證書對映到 LDAP 之前,還需要設定所需的 ACL;如需更多資訊,請參閱「控制對伺服器的存取」。


伺服器將嘗試檢視該 CA 是否與 Administration Server 中的某個可信任 CA 匹配。如果找不到匹配的 CA,Sun ONE Web Server 將終止連線。如果能夠找到匹配的 CA,伺服器將繼續處理申請。

驗證證書是來自可信任的 CA 之後,伺服器會透過以下方式將證書對映到 LDAP 項目:

伺服器使用名為 certmap.conf 的證書對映檔案來確定如何進行 LDAP 搜尋。對映檔案將告訴伺服器要使用用戶端證書中的哪些值 (如一般使用者的名稱、電子郵件位址等)。伺服器將使用這些值搜尋 LDAP 目錄中的使用者項目,但伺服器首先需要確定從 LDAP 目錄中的哪個位置開始搜尋。證書對映檔案也會告訴伺服器開始搜尋的位置。

伺服器瞭解了開始搜尋的位置和需要搜尋的內容 (步驟 1) 之後,將在 LDAP 目錄中執行搜尋 (步驟 2)。如果未找到匹配項目或找到多個匹配項目,並且設定對映以驗證證書,搜尋將失敗。如需有關預期搜尋結果行為的完整清單,請參閱下表「表 6-1」。請注意,您可以在 ACL 中指定預期的行為,例如,您可以指定 Sun ONE Web Server 在證書匹配失敗時僅接受您。如需有關如何設定 ACL 喜好設定的更多資訊,請參閱「使用存取控制檔案」。

表 6-1  LDAP 搜尋結果

LDAP 搜尋結果

證書驗證「開啟」

證書驗證「關閉」

未找到項目

認證失敗

認證失敗

恰好找到一個項目

認證失敗

認證成功

找到多個項目

認證失敗

授權失敗

伺服器在 LDAP 目錄中找到匹配的項目和證書後,就可以使用該資訊處理異動。例如,某些伺服器使用證書到 LDAP 的對映來確定對某個伺服器的存取權限。

使用 certmap.conf 檔案

證書對映用於確定伺服器在 LDAP 目錄中查找使用者項目的方式。您可以使用 certmap.conf 配置證書 (依名稱指定) 對映到 LDAP 項目的方式。您可以編輯此檔案並增加項目,以匹配 LDAP 目錄的組織和列出您希望使用者擁有的證書。使用者可以基於 subjectDN 中使用的使用者 ID、電子郵件位址或任何其他值進行認證。特別是,對映檔案可定義以下資訊:

證書對映檔案位於以下位置:

該檔案包含了一個或多個已命名對映,每個對映都套用於不同的 CA。對映的語法如下:

第一行用於指定項目的名稱以及形成 CA 證書中區別名稱的屬性。該名稱是任意的,您可以將其定義為所需的任何名稱。但是,issuerDN 必須與核發用戶端證書的 CA 的核發者 DN 完全匹配。例如,以下兩個 issuerDN 行僅在分隔屬性的空格上有所差異,但伺服器將其視為兩個不同的項目:

已命名對映中的第二行和隨後的行可以使屬性與值相匹配。certmap.conf 檔案中包含六個預設特性 (可以使用證書 API 自訂特性):

如需有關這些特性的更多資訊,請參閱「對映範例

建立自訂特性

您可以使用用戶端證書 API 建立自己的特性。如需有關程式設計和使用用戶端證書 API 的更多資訊,請參閱「NSAPI Programmer's Guide」。

建立自訂對映後,就可以參照以下格式的對映:

<name>:library <path_to_shared_library>
<name>:InitFn <name_of_init_function>

例如:

對映範例

certmap.conf 檔案中應至少包含一個項目。以下範例展示了可以使用 certmap.conf 檔案的不同方式。

範例 #1

本範例表示只有一個「預設」對映的 certmap.conf 檔案:

使用本範例,伺服器可以在包含 ou=<orgunit>, o=<org>, c=<country> 項目的 LDAP 分支點處開始搜尋,其中 <> 中的文字將取代為用戶端證書中主題 DN 的值。

然後,伺服器將使用證書中的電子郵件位址和使用者 ID 的值在 LDAP 目錄中搜尋匹配的項目。找到匹配的項目時,伺服器將比對用戶端傳送的證書和儲存在目錄中的證書,以驗證該證書。

範例 #2

以下範例檔案中包括兩個對映:一個用於預設,另一個用於美國郵政服務:

如果伺服器取得的證書來自美國郵政服務以外的其他使用者,則伺服器將使用預設對映,即從 LDAP 樹的頂端啟動並搜尋匹配用戶端電子郵件位址和使用者 ID 的項目。如果證書來自美國郵政服務,伺服器將從包含組織單元的 LDAP 分支啟動並搜尋匹配的電子郵件位址。而且請注意,如果證書來自 USPS,伺服器將驗證該證書,而不會驗證其他證書。


警告

證書中的核發者 DN (即 CA 的資訊) 必須與對映的第一行中所列的核發者 DN 完全相同。在以上範例中,來自核發者 DN (即 o=United States Postal Service,c=US) 的證書就不匹配,因為 oc 屬性之間沒有空格。


範例 #3

以下範例使用 CmapLdapAttr 特性搜尋 LDAP 資料庫中名為 certSubjectDN 的屬性,其值與用戶端證書中的整個主題 DN 完全匹配。

如果用戶端證書的主題為:

伺服器將首先搜尋包含以下資訊的項目:

如果找到一個或多個匹配的項目,伺服器將繼續驗證各項目。如果未找到匹配的項目,伺服器將使用 DNCompsFilterComps 搜尋匹配的項目。在本範例中,伺服器會在 o=LeavesOfGrass Inc, c=US 下的所有項目中搜尋 uid=Walt Whitman


備註

本範例假設 LDAP 目錄中包含帶有 certSubjectDN 屬性的項目。



設定更強密碼

[Stronger Ciphers] 選項可讓您選擇用於存取的 168 位元、128 位元或 56 位元大小的金鑰還可選擇不限定大小的金鑰。您可以指定不符合限定條件時使用的檔案。如果未指定檔案,Sun ONE Web Server 將傳回「Forbidden」狀態。

如果用於存取的所選金鑰大小與 [Security Preferences] 下的目前密碼設定不一致,Sun ONE Web Server 將顯示一個蹦現式對話方塊,警告您需要啟用帶有更大金鑰大小的密碼。

金鑰大小限定的實施目前基於 obj.conf 中的 NSAPI PathCheck 指令,而不是 Service fn=key-toosmall。該指令為:

其中,<nbits> 是金鑰中所需的最小位元數,<filename> 是不符合限定條件時使用的檔案 (而非 URI) 的名稱。

如果未啟用 SSL 或者未指定 secret-keysize 參數,PathCheck 將傳回 REQ_NOACTION。如果目前階段作業的金鑰大小小於指定的 secret-keysize,函式將傳回狀態為 PROTOCOL_FORBIDDENREQ_ABORTED (如果未指定 bong-file) 或其他 REQ_PROCEED,並且「path」變數被設定為 bong-file <filename>。而且,如果不符合金鑰大小限定,目前階段作業的 SSL 階段作業快取項目將失效,因此下次當同一個用戶端連線到伺服器時,將發生完整的 SSL 交換。


備註

當在「更強密碼」表單中增加 PathCheck fn=ssl-check 時,它將移除在物件中找到的所有 Service fn=key-toosmall 指令。


若要設定更強密碼,請執行下列步驟:

  1. 存取 [Server Manager] 並從下拉式清單中選取伺服器實例。
  2. 按一下 [Virtual Server Class] 標籤。
  3. 從下拉式清單選取一個類別並按一下 [Manage]。
  4. 螢幕上會顯示 [Class Manager] 頁面。

  5. 選擇 [Content Mgmt] 標籤。
  6. 選取 [Stronger Ciphers]。
  7. 選擇透過以下方式進行編輯:
    • 從下拉式清單中
    • 按一下 [Browse]
    • 按一下 [Wildcard]
  8. 選取金鑰大小的限定:
    • 168 位元或更大
    • 128 位元或更大
    • 56 位元或更大
    • 無限定
  9. 輸入要拒絕存取的訊息所在的檔案位置。
  10. 按一下 [OK]。
  11. 按一下 [Apply]。
  12. 選取硬式啟動/重新啟動或動態套用。

如需更多資訊,請參閱「Introduction to SSL」。


考量其他安全性問題

除了某些使用者會嘗試破解您的加密以外,還存在其他安全性風險。網路面臨的風險來自外部和內部的駭客,他們使用各種方法嘗試存取您的伺服器以及伺服器上的資訊。

因此,除了在伺服器上啟用加密外,還應採取額外的安全防護措施。例如,將伺服器機器放在一個安全的房間內,不允許任何不可信任的使用者將程式上載至您的伺服器。

以下小節描述了為使伺服器更安全所能執行的最重要動作:

限制實體存取

這種簡單的安全方法經常會被遺忘。將伺服器機器放在一個上鎖的房間中,只有經過授權的使用者才能進入該房間。這樣可以防止任何人攻擊伺服器機器本身。

而且,要保護好機器的管理 (根) 密碼 (如果有)。

限制管理存取

如果使用遠端配置,請確定設定了存取控制,以便只對少數使用者和電腦進行管理。如果希望 Administration Server 為一般使用者提供對 LDAP 伺服器或本機目錄資訊的存取權限,請考量維護兩個 Administration Server 和使用叢集管理。這樣啟用了 SSL 的 Administration Server 可作為主伺服器,而另一個 Administration Server 則用於一般使用者的存取。

如需有關叢集的更多資訊,請參閱「關於叢集」。

您還應該為 Administration Server 開啟加密功能。如果未將 SSL 連線用於管理,那麼透過非加密的網路執行遠端伺服器管理時應該格外小心,因為任何人都可以截取您的管理密碼並重新配置您的伺服器。

選擇可靠的密碼

您可以在伺服器中使用多個密碼:管理密碼、私密金鑰密碼、資料庫密碼等等。管理密碼是全部密碼中最重要的一個,因為任何持有該密碼的使用者均可以在您的電腦上配置任何伺服器。私密金鑰密碼是次重要的密碼。如果某個使用者取得了您的私密金鑰和私密金鑰密碼,則可以建立假伺服器 (偽裝成您的伺服器),或者截取和變更您伺服器的通訊資訊。

密碼最好是便於您自己記憶,他人又無法猜到。例如,您可以將 MCi12!mo 記成「My Child is 12 months old!」。不要使用孩子的姓名或生日作為密碼。

建立難以破解的密碼

以下這些簡單的指導原則可幫助您建立更好的密碼。

不必將以下全部規則都用於一個密碼,但使用的規則越多,您的密碼就越難以被破解:

變更密碼或 PIN

定期變更您的可信任資料庫/金鑰對檔案密碼或 PIN 是一個好習慣。如果在 Administration Server 中啟用了 SSL,則啟動伺服器時需要此密碼。定期變更密碼可以增加對伺服器的額外保護。

只能在本機機器上變更此密碼。如需有關變更密碼的注意事項清單,請參閱「建立難以破解的密碼」。

變更密碼

若要變更 Administration Server 或伺服器實例的可信任的資料庫/金鑰對檔案密碼,請執行下列步驟:

  1. 存取 [Administration Server] 或 [Server Manager]。
  2. 對於 [Server Manager],您必須先從下拉式清單中選取伺服器實例。

  3. 選取 [Change Password] 連結。
  4. 從下拉式清單中選取要在其中變更密碼的安全性記號。
  5. 依預設,內部金鑰資料庫的安全性記號為「internal」。如果安裝了 PKCS#11 模組,則會看到列出的所有記號。按一下 [Change Password] 連結。

  6. 輸入目前密碼。
  7. 輸入新密碼。
  8. 再次輸入新密碼。
  9. 按一下 [OK]。
  10. 對於 [Server Manager],按一下 [Apply],然後按一下 [Restart] 以使變更生效。

確定您的金鑰對檔案受到保護。Administration Server 將金鑰對檔案儲存在 server_root/alias 目錄中。請考量使檔案和目錄只能被您電腦上安裝的 Sun ONE 伺服器讀取。

瞭解備份磁帶上是否儲存了該檔案以及其他人是否能夠截取該檔案也很重要。如果儲存了該檔案,則必須像保護伺服器一樣盡力保護您的備份。

限制伺服器上的其他應用程式

當所有應用程式都在作為伺服器的同一台機器上執行時,需要格外小心。利用伺服器上執行的其他程式中的漏洞可以避開伺服器的安全保護。請停用所有不必要的程式和服務。例如,UNIX sendmail 常駐程式難以進行安全地配置,因此也就可以對其進行程式設計,以在伺服器機器上執行其他可能有害的程式。

UNIX 和 Linux

仔細選擇從 inittabrc 程序檔啟動的程序。請勿從伺服器機器執行 telnetrlogin。並且,也不應該在伺服器機器上執行 rdist (此指令可用來分配檔案,但也可用於更新伺服器機器上的檔案)。

Windows

與其他機器共用磁碟機和目錄時要格外小心。而且,要考量哪些使用者具有帳號或 Guest 權限。

同樣,在伺服器上安裝哪些程式以及是否允許其他使用者在伺服器上進行安裝都要格外小心。其他使用者的程式可能會存在安全漏洞。最糟糕的是,有人可能會上載懷有惡意的程式,目的就是破壞您的安全性。在您的伺服器上安裝程式之前一定要仔細檢查這些程式。

防止用戶端快取 SSL 檔案

透過在 HTML 檔案的 <HEAD> 部分中增加以下行,可以防止用戶端快取未加密的檔案:

限制連接埠

停用機器上未使用的所有連接埠。使用路由器或防火牆配置以防止與絕對最小連接埠集以外的任何連接埠進行進來的連線。這意味著取得機器上 Shell 的唯一方法就是實際使用伺服器的機器,該機器應該在一個限定的區域內。

瞭解伺服器的限制

伺服器提供了伺服器和用戶端之間的安全連線。用戶端取得資訊之後,伺服器既無法控制資訊的安全性,也無法控制對伺服器機器本身及其目錄和檔案的存取。

瞭解這些限制有助於您理解要避免哪些情形。例如,您可以透過 SSL 連線取得信用卡號,但這些號碼是否儲存在伺服器機器上的安全檔案中呢?SSL 連線終止後,這些號碼會怎樣呢?您應該對用戶端透過 SSL 傳送給您的任何資訊的安全性負責。

進行其他變更以保護伺服器

如果要同時使用受保護的和不受保護的伺服器,則應該在受保護的伺服器以外的其他機器上執行不受保護的伺服器。如果您的資源有限,必須在同一台機器上執行不受保護的伺服器和受保護的伺服器,請執行以下作業:

chroot 允許您建立第二個根目錄,以限制伺服器使用特定的目錄。將使用此特性來保護未受保護的伺服器。例如,您可以將根目錄設定為 /d1/ms。那麼,Web 伺服器每次嘗試存取根目錄,均會真正取得 /d1/ms。如果嘗試存取的是 /dev,則會取得 /d1/ms/dev 等等。這允許您在 UNIX/Linux 系統上執行 Web 伺服器,而無需授予它對實際根目錄下全部檔案的存取權限。

但是,如果使用的是 chroot,則需要在替代根目錄下設定 Sun ONE Web Server 所需的完整目錄結構,如下圖所示:

為虛擬伺服器類別指定 chroot

可以透過執行以下步驟為虛擬伺服器類別指定 chroot 目錄:

  1. 存取 [Server Manager] 並從下拉式清單中選取伺服器實例。
  2. 選取 [Virtual Server Class] 標籤。
  3. 按一下 [Edit Classes] 連結。
  4. 確定希望在其中指定 chroot 的類別的 [Option] 設定為 [Edit]。
  5. 按一下該類別的 [Advanced] 按鈕。
  6. 螢幕上會顯示 [Virtual Servers CGI Settings] 頁面。

  7. 在 [Chroot] 欄位中輸入完整的路徑名稱。
  8. 按一下 [OK]。
  9. 按一下 [Apply]。
  10. 選擇 [Load Configuration Files] 以動態套用。

為虛擬伺服器指定 chroot

可以透過執行以下步驟為特定虛擬伺服器指定 chroot 目錄:

  1. 存取 [Server Manager] 並從下拉式清單選取伺服器實例。
  2. 選取 [Virtual Server Class] 標籤。
  3. 從伺服器的樹檢視中,按一下要指定 chroot 目錄的虛擬伺服器的連結。
  4. 選取 [Settings] 標籤。
  5. 螢幕上會顯示 [Settings] 頁面。

  6. 在 [Chroot Directory] 旁邊的 [Set to] 欄位中輸入完整的路徑名稱。
  7. 按一下 [OK]。
  8. 按一下 [Apply]。
  9. 選擇 [Load Configuration Files] 以動態套用。

您也可以使用 [Class Manager Virtual Servers] 標籤和 [CGI Settings] 連結為虛擬伺服器指定 chroot 目錄。

如需有關如何為虛擬伺服器指定 chroot 目錄的更多資訊,請參閱「Sun ONE Web Server 6.1 Programmer's Guide」。



上一個      目錄      索引      下一個     


Copyright 2004 Sun Microsystems, Inc. 版權所有。