使用此程序配置 Instant Messaging 服务器以按照以下方式基于 TLS 实现安全通信:
要求将 TLS 用于所有客户机和服务器连接。
要求将 TLS 仅用于特定的服务器到服务器连接。
允许将 TLS 用于在建立了初始通信会话后请求安全传输的客户机和服务器连接。
要求将 TLS 用于特定的服务器到服务器连接以及允许将 TLS 用于其他客户机和服务器连接。
确保已创建 JKS,获取和安装了服务器证书,并将服务器配置为信任 CA 的证书,如为 Instant Messaging 服务器设置 TLS 中所述。
对于服务器到服务器的 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 的安全版本中的步骤。
以下是包含服务器到服务器和客户机到服务器的通信所需 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 |