サーバー上の TLS を有効にするには、「Instant Messaging サーバーの TLS 設定」で説明したように、事前に JKS を作成し、署名付きサーバー証明書を取得してインストールし、CA の証明書を信頼する必要があります。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 によって署名された有効な証明書のみを信頼します。 |
TLS を介したセキュリティー保護された通信を使用して Instant Messaging サーバーを次のように設定するには、この手順を使用します。
すべてのクライアントとサーバーの接続で 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 |
これでサーバーは、任意のクライアントや別の Instant Messaging サーバーからの接続要求に対し、TLS を介して通信可能である旨の応答を返すようになります。その後、要求元のクライアントやサーバーは、TLS を介してセキュリティー保護された接続を確立するかどうかを選択します。
クライアント、およびリモートおよびピアサーバーからのすべての接続に対してサーバーが TLS を要求するようにするには、iim.conf に次のパラメータを追加します。
iim_server.requiressl=true |
このパラメータを true に設定すると、サーバーは、TLS をサポートしないあらゆるクライアントとの接続、またはリモートまたはピアサーバーとの接続を終了させます。TLS を介してセキュリティー保護されたクライアント/サーバー間通信を要求するには、このパラメータを使用します。
サーバー間通信の詳細については、第 8 章「複数の Instant Messaging サーバーの連携配備」を参照してください。
特定のリモートまたはピアサーバーとの通信で TLS を要求するには、iim.conf に次のパラメータを追加します。
iim_server.coserver1.requiressl=true |
TLS を要求する協調サーバー (coserver) ごとに、このパラメータを設定します。
iim_server.requiressl を true に設定すると、サーバーは、通信するすべてのサーバーに対して TLS 接続を要求します。その場合、特定の協調サーバーでこのパラメータを設定する必要はありません。
(省略可能) サーバーが受け取ったすべての証明書を信頼し、証明書の情報をログファイルに追加するようにするには、iim.conf に次のパラメータを追加します。
iim_server.trust_all_cert=true |
実稼動前に、この機能を使用して配備をテストする必要が生じる可能性があります。ただし、配備済みのシステム上でテストを行うと深刻なセキュリティーリスクが発生するため、通常は行わないでください。この値が true の場合、サーバーは、期限切れの証明書や自己署名付き証明書を含むすべての証明書を信頼するほか、ログファイルへの証明書情報の追加も行います。false の場合、サーバーは証明書情報をログに記録せず、CA によって署名された有効な証明書のみを信頼します。
imadmin を使ってサーバーの設定を更新します。
imadmin refresh server |
TLS が正しく動作していることを確認します。
確認を行う方法はいくつか考えられますが、その 1 つとして、「セキュリティー保護された Instant Messenger の起動」の手順に従う方法が挙げられます。
次に示す iim.conf ファイルからの例には、サーバー間通信やクライアント/サーバー間通信で必要となる TLS 設定が含まれています。この例に含まれるパラメータの値は、配備ごとに異なります。
! サーバー間通信ポート。 iim_server.port = "5269" ! サーバーがサーバー間通信ポート上で ! 待機する場合 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 |