Calendar Server 支援安全套接層 (SSL) 協定,以加密行事曆用戶端一般使用者與 Calendar Server 之間的資料。為支援 SSL,Calendar Server 使用 Netscape 安全服務 (NSS) 的 SSL 程式庫,Sun Java System Messaging Server 也使用這些程式庫。
您可以在 ics.conf 檔案中將 Calendar Server 配置為僅加密 Calendar Server 登入與密碼或加密整個行事曆階段作業。
本章包含配置 SSL 必需的三項工作和疑難排解:
Calendar Server 不支援基於用戶端的 SSL 認證。
用於 Calendar Server 的 SSL 實作需要憑證資料庫。憑證資料庫必須定義認證機構 (CA) 和用於 Calendar Server 的憑證。本小節包含概念資訊和工作資訊:
建立憑證資料庫之前,請先熟悉以下內容:
Mozilla 工具 — 此發行版本包含以下 Mozilla 工具:
憑證資料庫工具 (certutil),用於建立與管理憑證資料庫。如需相關資訊,請參閱以下網站:
http://mozilla.org/projects/security/pki/ nss/tools/certutil.html
嘗試產生您的憑證資料庫之前,請熟悉該工具的語法。
安全模組資料庫工具 (modutil),用於顯示有關可用安全模組的資訊。如需相關資訊,請參閱以下網站:
http://mozilla.org/projects/security/pki/ nss/tools/modutil.html
這些公用程式位於以下目錄中:
/opt/SUNWics5/cal/lib
或從網站下載最新版本。
程式庫路徑變數 — 使用 Mozilla 工具之前,請適當設定您的 LD_LIBRARY_PATH 變數。例如:
setenv LD_LIBRARY_PATH /opt/SUNWics5/cal/lib
範例檔案和目錄 — 本章中的範例使用以下檔案和目錄:
以超級使用者的身份登入或成為超級使用者 (root)。
在 /etc/opt/SUNWics5/config/sslPasswordFile 中為 certutil 指定憑證資料庫密碼。例如:
# echo "password" /etc/opt/SUNWics5/config/sslPasswordFile |
其中 password 為您的特定密碼。
建立憑證資料庫 alias 目錄。例如:
# cd /var/opt/SUNWics5 # mkdir alias |
移至 bin 目錄,並產生憑證資料庫 (cert8.db) 和金鑰資料庫 (key3.db)。例如:
# cd /opt/SUNWics5/cal/bin # ./certutil -N -d /var/opt/SUNWics5/alias -f /etc/opt/SUNWics5/config/sslPasswordFile |
當您必須執行 certutil 公用程式時,請完全依照範例,或者查閱 certutil 說明頁面以瞭解語法。
例如,在這種情況下,沒有指定 -d /file 資訊,請勿執行帶有 -N 選項的此公用程式。
產生預設的自我簽署的根認證機構憑證。例如:
# ./certutil -S -n SampleRootCA -x -t "CTu,CTu,CTu" -s "CN=My Sample Root CA, O=sesta.com" -m 25000 -o /var/opt/SUNWics5/alias/SampleRootCA.crt -d /var/opt/SUNWics5/alias -f /etc/opt/SUNWics5/config/sslPasswordFile -z /etc/passwd |
產生用於主機的憑證。例如:
# ./certutil -S -n SampleSSLServerCert -c SampleRootCA -t "u,u,u" -s "CN=hostname.sesta.com, O=sesta.com" -m 25001 -o /var/opt/SUNWics5/alias/SampleSSLServer.crt -d /var/opt/SUNWics5/alias -f /etc/opt/SUNWics5/config/sslPasswordFile -z /etc/passwd |
其中 hostname.sesta.com 為伺服器主機名稱。
驗證憑證。例如:
# ./certutil -V -u V -n SampleRootCA -d /var/opt/SUNWics5/alias # ./certutil -V -u V -n SampleSSLServerCert -d /var/opt/SUNWics5/alias |
列出憑證。例如:
# ./certutil -L -d /var/opt/SUNWics5/alias # ./certutil -L -n SampleSSLServerCert -d /var/opt/SUNWics5/alias |
使用 modutil 列出可用的安全模組 (secmod.db)。例如:
# ./modutil -list -dbdir /var/opt/SUNWics5/alias |
將 alias 檔案的所有者變更為 icsuser 與 icsgroup (或 Calendar Server 執行時將使用的使用者與群組身份)。例如:
# find /var/opt/SUNWics5/alias -exec chown icsuser {}; # find /var/opt/SUNWics5/alias -exec chgrp icsgroup {}; |
以下步驟告訴您如何產生憑證請求,並將其提交至公開金鑰基礎架構 (PKI) 網站,然後匯入該憑證。
以超級使用者的身份登入或成為超級使用者 (root)。
移至 bin 目錄:
# cd /opt/SUNWics5/cal/bin |
使用 certutil 根據認證機構或公開金鑰基礎架構 (PKI) 網站來產生憑證請求。例如:
# ./certutil -R -s "CN=hostname.sesta.com, OU=hostname/ SSL Web Server, O=Sesta, C=US" -p "408-555-1234" -o hostnameCert.req -g 1024 -d /var/opt/SUNWics5/alias -f /etc/opt/SUNWics5/config/sslPasswordFile -z /etc/passwd -a |
其中 “hostname.sesta.com” 是主機名稱。
向認證機構或公開金鑰基礎架構 (PKI) 網站為 SSL Web 伺服器請求一個測試憑證。複製 hostnameCert.req 檔案的內容,並將其貼至憑證請求中。
當您的憑證被簽署並可取得時您會收到通知。
將認證機構憑證鏈與 SSL 伺服器憑證複製至文字檔案中。
將認證機構憑證鏈匯入憑證資料庫以建立授權鏈。例如:
# ./certutil -A -n "GTE CyberTrust Root" -t "TCu,TCu,TCuw" -d /var/opt/SUNWics5/alias -a -i /export/wspace/Certificates/CA_Certificate_1.txt -f /etc/opt/SUNWics5/config/sslPasswordFile # ./certutil -A -n "Sesta TEST Root CA" -t "TCu,TCu,TCuw" -d /var/opt/SUNWics5/alias -a -i /export/wspace/Certificates/CA_Certificate_2.txt -f /etc/opt/SUNWics5/config/sslPasswordFile |
匯入已簽署的伺服器憑證:
# ./certutil -A -n "hostname SSL Server Test Cert" -t "u,u,u" -d /var/opt/SUNWics5/alias -a -i /export/wspace/Certificates/SSL_Server_Certificate.txt -f /etc/opt/SUNWics5/config/sslPasswordFile |
列出憑證資料庫中的憑證:
# ./certutil -L -d /var/opt/SUNWics5/alias |
在 ics.conf 檔案中將 SSL 伺服器暱稱配置為已簽署的 SSL 伺服器憑證,例如:“hostname SSL Server Test Cert”。
注意 ics.conf 檔案中用於 service.http.calendarhostname 與 service.http.ssl.sourceurl 參數的主機名稱應符合 SSL 憑證上的主機名稱 (假定您的系統擁有數個別名)。例如:calendar.sesta.com
若要將 SSL 與 Calendar Server 配合實作,必須在 ics.conf 檔案中設定特定的參數。如果 ics.conf 檔案中沒有下表中列出的某些參數,則請在該檔案中增加這些參數,並指定其值。由於 ics.conf 在系統啟動時 (發出 start-cal 時) 處於唯讀狀態,因此新值將在 Calendar Server 重新啟動後才會生效。如需這些 SSL 參數的說明,請參閱SSL 配置。
以擁有變更配置權限的管理員身份登入。
變更至 /etc/opt/SUNWics5/cal/config 目錄。
透過複製及重新命名,儲存舊的 ics.conf 檔案。
如下表中所示編輯一個或多個參數︰
參數 |
值 |
---|---|
encryption.rsa.nssslactivation |
“on” |
encryption.rsa.nssslpersonalityssl |
“SampleSSLServerCert” |
encryption.rsa.nsssltoken |
“internal” |
service.http.tmpdir |
“/var/opt/SUNWics5/tmp” |
service.http.uidir.path |
“html” |
service.http.ssl.cachedir |
“.” |
service.http.ssl.cachesize |
“10000” |
service.http.ssl.certdb.password |
" "(Supply an appropriate password) |
service.http.ssl.certdb.path |
“/var/opt/SUNWics5/alias” |
service.http.ssl.port.enable |
“yes” |
service.http.ssl.port |
"443" (預設 SSL 連接埠) 備註 – 而非在連接埠 "80" (HTTP 預設連接埠) 上。 |
service.http.securesession |
"yes" (整個階段作業已加密) |
service.http.ssl.sourceurl |
“https”//localhost:port” (提供您本地主機的名稱和 service.http.ssl.port 值。) |
service.http.ssl.ssl2.ciphers |
““ |
service.http.ssl.ssl2.sessiontimeout |
“0” |
service.http.ssl.ssl3.ciphers |
"rsa_red_40_md5, rsa_rc2_40_md5, rsa_des_sha, rsa_rc4_128_md5, rsa_3des_sha" |
service.http.ssl.ssl3.sessiontimeout |
“0” |
service.http.sslusessl |
“yes” |
將檔案儲存為 ics.conf。
重新啟動 Calendar Server 以使變更生效。
cal_svr_base/SUNWics5/cal/sbin/start-cal
首先,請定期備份您的憑證資料庫,以免發生無法回復的問題。如果您的 SSL 發生問題,可以考量以下一些內容:
SSL 要求 Calendar Server cshttpd 程序正在執行。若要確定 cshttpd 是否正在執行,請使用以下指令:
# ps -ef | grep cshttpd
若要列出憑證資料庫中的憑證並檢查其有效日期,請使用以下指令:
# ./certutil -L -d /var/opt/SUNWics5/alias
檢查 Calendar Server 記錄檔,以找出所有的 SSL 錯誤。如需更多資訊,請參閱使用 Calendar Server 記錄檔。
使用瀏覽器和以下 URL 連線至 SSL 連接埠:
https://server-name:ssl-port-number
其中:
server-name 為執行 Calendar Server 的伺服器之名稱。
ssl-port-number 為 ics.conf 檔案中 service.http.ssl.port 參數指定的 SSL 連接埠號碼。預設為 443。
HTTP 和 HTTPS 偵聽不同的連接埠 (SSL 偵聽 443,HTTP 偵聽 80),因此您絕不可能讓二者偵聽同一連接埠。目前,沒有告知 cshttpd 停止偵聽一般 HTTP 連接埠的方法。然而,管理員可以將 service.http.port 變更為未公開的號碼。
請勿設定 service.http.enable ="no" 來嘗試阻止 cshttpd 偵聽 HTTP。執行此作業會導致 HTTPS 也失敗。service.http.enable 和 service.http.ssl.port.enable 均必須設定為 "yes",以便正確配置 SSL。