Sun Java System Instant Messaging 7.2 管理指南

在 Instant Messaging 服务器上激活 TLS

在服务器上激活 TLS 前,必须创建一个 JKS,获取和安装一个已签署的服务器证书,并信任 CA 的证书,如为 Instant Messaging 服务器设置 TLS中所述。要将 TLS 用于服务器到服务器和/或客户机到服务器的通信,在服务器上激活 TLS。

表 12–1 列出了 iim.conf 中用来在 Instant Messaging 服务器中启用 TLS 的参数。还包含这些参数的说明和默认值。

表 12–1 Instant Messaging 服务器 TLS 配置参数

参数 

默认值 

说明 

iim_server.sslkeystore

无 

包含服务器的 Java 密钥库 (Java keystore, JKS) 的相对路径和文件名。例如:


/im-cfg-base/server-keystore.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 签署的有效证书。

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