Sun Java System Calendar Server 6.3 관리 설명서

7.1 Calendar Server에 대해 SSL 구성

이 절에서는 Calendar Server에 대해 SSL을 구성하기 위한 지침을 제공합니다.

이 절은 다음 내용으로 구성되어 있습니다.

Procedure인증서 데이터베이스를 만들려면

게이트웨이에서는 자신의 공개 키를 클라이언트로 전송하기 위해 인증서를 필요로 합니다. 인증서에는 게이트웨이의 공개 키, 게이트웨이의 인증서와 연결된 고유 이름, 일련 번호 또는 인증서 발급 날짜 및 만료 날짜가 포함됩니다. 인증서는 게이트웨이의 Identity를 검증하는 인증 기관(CA)에서 발급합니다. CA는 한 명 이상의 사용자가 신뢰하는 기관으로, X.509 공개 키 인증서 및 CARL 또는 CRL(Certification Revocation List)을 발행 및 관리합니다. CA는 PKI(공개 키 인프라)의 기본 빌딩 블록입니다. 한편, PKI는 공개 키 인증서의 발행, 유지 관리 및 해지 기능을 포함하여 인증서 및 공개-개인 키 쌍을 관리할 목적으로 사용되는 정책, 프로세스, 서버 플랫폼, 소프트웨어 및 워크스테이션 집합이기도 합니다.

CA는 자신의 이름을 모든 인증서 및 생성한 CRL에 삽입하고 개인 키를 사용하여 인증서를 디지털 서명합니다. 직접 또는 인증 경로를 통해 CA에 대한 신뢰가 구축되면 CA에서 발행한 인증서를 신뢰할 수 있습니다. 이름을 비교하여 CA에서 발행한 인증서를 쉽게 파악할 수 있습니다. 그러나 공개 키는 해당 인증서가 유효한지 확인하는 데만 사용할 수 있습니다.

CA는 다음 4가지의 기본적인 PKI 기능을 수행합니다.

사용자 서버의 인증서 및 키 쌍은 사용자 서버의 Identity를 나타내며서버 내부 또는 외부의 이동식 하드웨어 카드(스마트카드)에 보관할 수 있는 인증서 데이터베이스에 저장됩니다. Calendar Server를 위해 SSL을 구현하려면 인증서 데이터베이스가 필요합니다. 인증서 데이터베이스는 인증 기관(CA) 및 Calendar Server용 인증서를 정의해야 합니다. 이 절에서는 개념 및 작업 정보를 제공합니다.

시작하기 전에

인증서 데이터베이스를 만들기 전에 다음에 익숙해져야 합니다.

  1. 수퍼유저(root)로 로그인합니다.

  2. /etc/opt/SUNWics5/config/sslpassword.conf에서 인증서 데이터베이스 비밀번호를 지정합니다.

    예를 들면 다음과 같습니다.


    # echo "password file entry" 
          /etc/opt/SUNWics5/config/sslpassword.conf

    비밀번호 파일 항목의 형식은 다음과 같습니다.

    Internal (Software) Token: password

  3. 인증서 데이터베이스 디렉토리를 만듭니다. 예를 들면 다음과 같습니다.


    # cd /var/opt/SUNWics5
     # mkdir alias
  4. bin 디렉토리로 변경하고 인증서 데이터베이스(cert8.db)와 키 데이터베이스(key3.db)를 만듭니다. 예를 들면 다음과 같습니다.


    # cd /opt/SUNWics5/cal/bin
     # ./certutil -N -d /etc/opt/SUNWics5/config
                     -f /etc/opt/SUNWics5/config/sslpassword.conf

    주 –

    certutil 유틸리티를 실행해야 하는 경우에는 다음 예를 정확하게 따르거나 certutil 도움말 페이지를 참조하여 구문을 이해해야 합니다.

    예를 들어, 이 경우에는 -d / 파일 정보를 함께 지정하지 않고는 -N 옵션과 함께 유틸리티를 실행하지 마십시오.


  5. 자체 서명된 기본 루트 인증 기관 인증서를 생성합니다. 예를 들면 다음과 같습니다.


    # ./certutil -S -n SampleRootCA -x -t "CTu,CTu,CTu"
     -s "CN=My Sample Root CA, O=sesta.com" -m 25000
     -o /etc/opt/SUNWics5/config/SampleRootCA.crt
     -d /etc/opt/SUNWics5/config
     -f /etc/opt/SUNWics5/config/sslpassword.conf -z
     /etc/passwd
  6. 호스트를 위한 인증서를 생성합니다. 예를 들면 다음과 같습니다.


    # ./certutil -S -n SampleSSLServerCert -c SampleRootCA 
     -t "u,u,u"
     -s "CN=hostname.sesta.com, O=sesta.com" -m 25001
     -o /etc/opt/SUNWics5/config/SampleSSLServer.crt
     -d /etc/opt/SUNWics5/config 
     -f /etc/opt/SUNWics5/config/sslpassword.conf
     -z /etc/passwd

    여기서 hostname.sesta.com은 서버 호스트 이름입니다.

  7. 인증서를 검증합니다. 예를 들면 다음과 같습니다.


    # ./certutil -V -u V -n SampleRootCA  
        -d /etc/opt/SUNWics5/config
     # ./certutil -V -u V -n SampleSSLServerCert 
       -d /etc/opt/SUNWics5/config
  8. 인증서를 나열합니다. 예를 들면 다음과 같습니다.


    # ./certutil -L -d /etc/opt/SUNWics5/config
     # ./certutil -L -n SampleSSLServerCert 
       -d /etc/opt/SUNWics5/config
  9. modutil을 사용하여 사용 가능한 보안 모듈을 나열합니다(secmod.db). 예를 들면 다음과 같습니다.


    # ./modutil -list -dbdir /etc/opt/SUNWics5/config
  10. 별칭 파일의 소유자를 icsusericsgroup(또는 Calendar Server를 실행할 사용자 및 그룹 아이디)으로 변경합니다. 예를 들면 다음과 같습니다.


    # find /etc/opt/SUNWics5/config -exec chown icsuser {};
     # find /etc/opt/SUNWics5/config -exec chgrp icsgroup {};

7.1.1 자체 서명된 인증서

자체 서명된 인증서는 게이트웨이의 자체 개인 키를 사용하여 서명되는 인증서를 말합니다. 자체 서명된 인증서는 안전하지 않지만 실제 서명된 인증서를 사용하기 전, 인증서가 필요한 응용 프로그램을 테스트하는 데 사용할 수 있습니다. 자체 서명된 인증서는 CA의 서명이 아닌 자체 인증서 요청을 서명으로 사용합니다.

PKI를 통해 자체 서명된 인증서를 만드는 경우 10개의 공통 필드가 있는데, 이 중 6개는 필수이고 4개는 선택 필드입니다. 일련 번호, 인증서 서명 알고리즘 식별자, 인증서 발행자 이름, 인증서 유효 기간, 공개 키 및 주체 이름은 필수 필드입니다. 선택 필드는 버전 번호, 2개의 고유 식별자 및 확장자입니다. 이러한 선택 필드는 버전 2 및 3 인증서에만 나타납니다.

필수 유효 기간 필드는 인증서가 유효하게 되는 날짜와 만료되는 날짜를 나타냅니다. NSS certutils에서 제공하는 기본 만료 날짜는 3개월입니다. 그러나 인증서의 유효 기간 데이터는 만료 날짜에 도달하기 전에 신뢰할 수 없게 됩니다. X.509 CRL 메커니즘은 인증서 만료 날짜에 주의할 수 있도록 발행한 인증서의 상태 업데이트를 제공합니다. 또한 CA는 인증서 만료를 1-2년으로 강제 적용합니다.

인증서가 만료되거나 유효 날짜가 지나면 인증서를 갱신해야 합니다. 갱신은 새 인증서를 발행하여 공개 키 인증서로 논리 검사된 데이터 바인딩의 유효성을 연장하는 작업 또는 프로세스입니다. 다음 명령을 사용하여 인증서의 유효성을 검사할 수 있습니다.

-V -n certname -b validity-time -u certusage [-e] [-l] [-d certdir]

다음 예는 인증서의 유효성을 검사하는 명령의 사용 방법을 보여 줍니다.

certutil -V -n jsmith@netscape.com -b 9803201212Z -u SR -e -l -d certdir.

인증서 데이터베이스 도구에서 다음과 유사한 결과가 표시됩니다.

Certificate:'jsmith@netscape.com' is valid.

또는

UID=jsmith, E=jsmith@netscape.com, CN=John Smith, O=Netscape Communications Corp., C=US : Expired certificate

또는

UID=jsmith, E=jsmith@netscape.com, CN=John Smith, O=Netscape Communications Corp., C=US : Certificate not approved for this operation

Procedure루트 인증 기관에 인증서 요청 및 가져오기

다음 단계에서는 인증서 요청을 생성하고 이를 PKI(Public Key Infrastructure)웹 사이트에 제출하고 나서 해당 인증서를 가져오는 방법을 설명합니다. 여기서는 인증서 데이터베이스를 config 디렉토리에 저장했다고 가정합니다.

시작하기 전에

인증서 데이터베이스와 비밀번호 파일은 같은 디렉토리에 있어야 합니다. 여기서 표시되는 기본값은 config 디렉토리이지만 다른 경로 매개 변수를 구성해야 하는 경우 다음 절차에 나와 있는 대로 다른 디렉토리를 선택할 수 있습니다.

  1. 수퍼유저(root)로 로그인합니다.

  2. bin 디렉토리로 이동합니다.

    # cd /opt/SUNWics5/cal/bin

  3. certutil을 사용하여 인증 기관이나 PKI(Public Key Infrastructure) 웹 사이트를 기반으로 인증서 요청을 만듭니다. 예를 들면 다음과 같습니다.


    # ./certutil -R -s "CN=hostname.sesta.com, 
    OU=hostname/ SSL Web Server, O=Sesta, 
    C=US" -p "408-555-1234" -o hostnameCert.req 
    -g 1024  -d /etc/opt/SUNWics5/config 
    -f /etc/opt/SUNWics5/config/sslpassword.conf  -z /etc/passwd -a

    여기서 “hostname.sesta.com”은 호스트 이름입니다.

  4. 인증 기관이나 PKI(Public Key Infrastructure) 웹 사이트에 SSL 웹 서버에 대한 테스트 인증서를 요청합니다. hostnameCert.req 파일의 내용을 복사하여 인증서 요청에 붙여넣습니다.

    인증서가 서명되어 찾아갈 수 있게 되면 관리자에게 알립니다.

  5. 인증 기관 인증서 체인 및 SSL 서버 인증을 텍스트 파일로 복사합니다.

  6. CA 인증서 체인을 인증서 데이터베이스로 가져와서 인증 체인을 설정합니다. 예를 들면 다음과 같습니다.


    # ./certutil -A -n "GTE CyberTrust Root"
        -t "TCu,TCu,TCuw" 
        -d /etc/opt/SUNWics5/config 
        -a 
        -i /export/wspace/Certificates/CA_Certificate_1.txt
        -f /etc/opt/SUNWics5/config/sslpassword.conf
    # ./certutil -A -n "Sesta TEST Root CA" 
        -t "TCu,TCu,TCuw" 
        -d /etc/opt/SUNWics5/config 
        -a 
        -i /export/wspace/Certificates/CA_Certificate_2.txt
        -f /etc/opt/SUNWics5/config/sslpassword.conf
  7. 서명된 SSL 서버 인증서를 가져옵니다.


    # ./certutil -A -n "hostname SSL Server Test Cert"
        -t "u,u,u" -d /etc/opt/SUNWics5/config 
        -a 
        -i /export/wspace/Certificates/SSL_Server_Certificate.txt
        -f /etc/opt/SUNWics5/config/sslpassword.conf
  8. 인증서 데이터베이스의 인증서를 나열합니다.

    # ./certutil -L -d /etc/opt/SUNWics5/config

  9. ics.conf 파일의 SSL Server 별명이 서명된 SSL 서버 인증서가 되도록 구성합니다. 예: “hostname SSL Server Test Cert”.

    ics.conf 파일에 있는 service.http.calendarhostnameservice.http.ssl.sourceurl 매개 변수의 호스트 이름이 SSL 인증서의 호스트 이름과 일치해야 합니다(시스템에 별명이 여러 개 있는 경우). 예를 들면 다음과 같습니다. calendar.sesta.com

Procedureics.conf 파일의 SSL 매개 변수를 구성하려면

Calendar Server에 SSL을 구현하려면 ics.conf 파일에서 특정 매개 변수를 설정해야 합니다. 다음 표에 나열된 매개 변수 중에서 ics.conf 파일에 없는 변수가 있는 경우에는 파일에 해당 변수를 추가하고 값을 지정합니다. ics.conf는 시스템을 시작할 때(start-cal을 시작할 때)에만 읽히기 때문에 Calendar Server를 다시 시작할 때까지 새 값이 적용되지 않습니다. SSL 매개 변수에 대한 자세한 내용은 E.2.10 Calendar Server SSL 구성 매개 변수를 참조하십시오.

  1. 구성을 변경할 권한을 가지고 관리자로 로그인합니다.

  2. /etc/opt/SUNWics5/cal/config 디렉토리로 변경합니다.

  3. 이전 ics.conf 파일을 복사한 다음 이름을 변경하여 저장합니다.

  4. 다음 표에 표시된 매개 변수 중 하나 이상을 편집합니다.

    매개 변수 

    값 

    encryption.rsa.nssslactivation

    "on"

    encryption.rsa.nssslpersonalityssl

    "SampleSSLServerCert"

    encryption.rsa.nsssltoken

    "internal"

    service.http.tmpdir

    "/var/opt/SUNWics5/tmp"

    service.http.uidir.path

    "html"

    service.http.ssl.cachedir

    "."

    service.http.ssl.cachesize

    "10000"

    local.ssldbpath

    "/etc/opt/SUNWics5/config"

    service.http.ssl.port.enable

    "yes"

    service.http.ssl.port

    "443"(기본 SSL 포트)


    주 –

    HTTP 기본 포트인 포트 "80"은 아닙니다.


    service.http.securesession

    "yes"(전체 세션 암호화)

    service.http.ssl.sourceurl

    "https://localhost:port"(로컬 호스트의 이름과 service.http.ssl.port 값 입력)로 시작해야 합니다.

    service.http.ssl.ssl3.ciphers

    "rsa_red_40_md5,

    rsa_rc2_40_md5,

    rsa_des_sha,

    rsa_rc4_128_md5,

    rsa_3des_sha"

    service.http.ssl.ssl3.sessiontimeout

    "0"

    service.http.sslusessl

    "yes"

  5. 파일을 ics.conf로 저장합니다.

  6. 변경 내용을 적용하려면 Calendar Server를 다시 시작합니다.

    cal-svr-base/SUNWics5/cal/sbin/start-cal