Sun Java System Instant Messaging 7.2 관리 설명서

Instant Messaging 서버에서 TLS 활성화

서버에서 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)에 대한 상대 경로와 파일 이름이 포함됩니다. 예를 들면 다음과 같습니다.


/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에서 서명한 유효한 인증서만 신뢰합니다.

ProcedureInstant Messaging 서버에서 TLS 통신을 활성화하려면

여기서 설명하는 절차를 사용하여 다음과 같은 방식으로 TLS를 통해 보안 통신을 사용하도록 Instant Messaging 서버를 구성합니다.

시작하기 전에

Instant Messaging 서버를 위한 TLS 설정 에서 설명한 대로 JKS를 만들고, 서버 인증서를 가져와 설치하고, CA의 인증서를 신뢰하도록 구성했는지 확인합니다.

서버 대 서버 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.requiressltrue로 설정하면 서버에서 통신하는 모든 서버와의 연결에 대해 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