Sun Java System Instant Messaging 7.2 管理指南

Procedure在 Instant Messaging 服务器中激活 TLS 通信

使用此程序配置 Instant Messaging 服务器以按照以下方式基于 TLS 实现安全通信:

开始之前

确保已创建 JKS,获取和安装了服务器证书,并将服务器配置为信任 CA 的证书,如为 Instant Messaging 服务器设置 TLS 中所述。

对于服务器到服务器的 TLS 通信,必须在要配置来使用 TLS 的每台服务器上完成此程序。

  1. iim.conf 中的以下参数添加值。

    如果参数尚未出现在 iim.conf 中,请进行添加。


    iim_server.sslkeystore=server-keystore.jks
    iim_server.keystorepasswordfile=sslpassword.conf
    

    服务器将使用其能够基于 TLS 实现通信的信息来回应任意客户机或另一 Instant Messaging 服务器的连接请求。然后提出请求的客户机或服务器将选择是否建立基于 TLS 的安全连接。

  2. 如果希望服务器将 TLS 用于来自所有客户机、远程和对等服务器的连接,在 iim.conf 中添加以下参数:


    iim_server.requiressl=true

    如果将此参数设置为 true,服务器会终止与不支持 TLS 的客户机或远程及对等服务器之间的连接。使用此参数来请求基于 TLS 的安全客户机到服务器通信。

    有关服务器到服务器通信的更多信息,参见第 8 章,多个 Instant Messaging 服务器的联合部署

  3. 如果要将 TLS 用于与特定远程或对等服务器之间的通信,将以下参数添加到 iim.conf


    iim_server.coserver1.requiressl=true

    为需要 TLS 的每个协同服务器设置此参数。

    如果将 iim_server.requiressl 设置为 true,服务器会要求与其通信的所有服务器均采用 TLS 连接。在这种情况下,无需为特定的协同服务器设置此参数。

  4. (可选的)如果希望服务器信任接收到的所有证书,并将证书信息添加到日志文件,将以下参数添加到 iim.conf


    iim_server.trust_all_cert=true

    注意 – 注意 –

    可能需要在上线前使用此功能来测试部署。然而,通常不应对已部署的系统执行此操作,因为这样会引起严重的安全风险。如果此值为 true,服务器会信任所有证书(包括过期和自签署的证书),并且还会将证书信息添加到日志文件中。如果为 false,服务器将不会记录证书信息,并仅信任由 CA 签署的有效证书。


  5. 使用 imadmin 刷新服务器配置。


    imadmin refresh server
    
  6. 验证 TLS 是否正常工作。

    可通过多种方式完成此操作,如通过执行调用 Instant Messenger 的安全版本中的步骤。


示例 12–1 iim.conf 中的 TLS 配置

以下是包含服务器到服务器和客户机到服务器的通信所需 TLS 配置的 iim.conf 文件的示例部分。本示例中参数的值可能与您的部署有所不同。


! 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