您必須先按照為 Instant Messaging 伺服器設定 TLS中所述建立 JKS、取得與安裝簽署的伺服器憑證,並信任 CA 的憑證,才能在伺服器上啟動 TLS。當您想實現伺服器對伺服器和/或用戶端對伺服器的 TLS 通訊時,可在伺服器上啟動 TLS。
表 12–1 列出在 Instant Messaging 伺服器中啟動 TLS 的 iim.conf 參數。其中也包含這些參數的說明與預設值。
表 12–1 Instant Messaging 伺服器 TLS 配置參數
參數 |
預設值 |
說明 |
|
---|---|---|---|
iim_server.sslkeystore |
無 |
包含伺服器 Java 金鑰庫 (JKS) 的相對路徑與檔案名稱。例如:
|
|
iim_server.keystorepasswordfile |
sslpassword.conf |
包含擁有金鑰庫密碼之檔案的相對路徑與名稱。此檔案應該包含下列指令行: Internal (Software) Token:password 其中 password 是保護金鑰資料庫的密碼。 |
|
iim_server.requiressl |
false |
如果為 true,則在設定初始串流階段作業後,伺服器會終止不請求 TLS 連線的任何連線。 |
|
iim_server.trust_all_cert |
false |
如果此值是 true,則伺服器會信任所有的憑證,包含過期與自我簽署的憑證,並且也會將憑證資訊新增至記錄檔案。如果是 false,則伺服器不會記錄憑證資訊,並且僅會信任 CA 所簽署的有效憑證。 |
使用下列方式執行此程序,配置 Instant Messaging 伺服器以進行 TLS 安全通訊:
所有用戶端與伺服器連線都需要使用 TLS。
僅有特定伺服器對伺服器連線需要使用 TLS。
設定初始通訊階段作業後,允許請求安全傳輸之用戶端與伺服器使用 TLS 連線。
綜合兩者:為特定伺服器對伺服器連線請求 TLS 連線,以及允許其他用戶端與伺服器使用 TLS 連線。
請確定您已按照為 Instant Messaging 伺服器設定 TLS所述建立 JKS、已取得並安裝伺服器憑證,以及將伺服器配置為信任 CA 憑證。
對於伺服器對伺服器 TLS 通訊,您必須在每個想要配置使用 TLS 的伺服器上完成此程序。
在 iim.conf 中增加下列參數值。
如果在 iim.conf 中尚沒有參數,請增加它們。
iim_server.sslkeystore=server-keystore.jks iim_server.keystorepasswordfile=sslpassword.conf |
現在伺服器會以可透過 TLS 通訊的資訊,來回應來自任何用戶端或其他 Instant Messaging 伺服器的連線請求。正在請求的用戶端或伺服器,會接著選擇是否要透過 TLS 建立安全的連線。
如果您想要伺服器要求用戶端的所有連線都是 TLS 連線,請將下列參數增加至 iim.conf :
iim_server.requiressl=true |
如果您將此參數設定為 true,則伺服器會終止與任何不支援 TLS 的用戶端、遠端或對等伺服器之間的連線。使用此參數要求用戶端與伺服器之間進行 TLS 安全通訊。
如需關於伺服器對伺服器通訊的詳細資訊,請參閱第 8 章, 聯合部署多個 Instant Messaging 伺服器。
如果您想要求特定遠端或對等伺服器進行 TLS 通訊,請將下列參數增加至 iim.conf:
iim_server.coserver1.requiressl=true |
為每個您想要求 TLS 通訊的協同伺服器設定此參數。
如果您將 iim_server.requiressl 設定為 true,則伺服器會要求任何與其通訊的伺服器使用 TLS 連線。在此例中,您不需要為特定協同伺服器設定此參數。
(可選擇) 如果您想要伺服器信任所有其所收到的憑證,並將憑證資訊新增至記錄檔案,請將下列參數新增至 iim.conf:
iim_server.trust_all_cert=true |
您可能需要在實際操作部署前,先使用此功能來測試部署。然而,通常您不應在已部署的系統上這麼做,因為這會造成嚴重的安全風險。如果此值是 true,則伺服器會信任所有的憑證,包含過期與自我簽署的憑證,並且也會將憑證資訊增加至記錄檔案。如果是 false,則伺服器不會記錄憑證資訊,且僅會信任 CA 所簽署的有效憑證。
使用 imadmin 重新整理伺服器配置。
imadmin refresh server |
驗證 TLS 是否運作正常。
您可以幾種方式來這麼做,例如遵循呼叫 Instant Messenger 的安全版本中的步驟來執行。
以下是 iim.conf 檔案範例區段,其中包含為伺服器對伺服器、用戶端對伺服器通訊所需要的 TLS 配置。此範例中的參數值與您所部署的會不一樣。
! Server to server communication port. iim_server.port = "5269" ! Should the server listen on the server to server ! communication port iim_server.useport = "True” iim_server.coservers=coserver1 iim_server.coserver1.serverid=Iamcompany22 iim_server.coserver1.password=secretforcompany22 iim_server.coserver1.host=iim.i-zed.com:5269 iim_server.serverid=Iami-zed iim_server.password=secret4i-zed iim_server.trust_all_cert=true iim_server.sslkeystore=/var/im/server_keystore.jks iim_server.keystorepasswordfile=/var/im/sslpassword.conf |