Sun Java System Application Server Enterprise Edition 8.1 2005Q2 관리 설명서

인증서 및 SSL 작업

인증서 파일 정보

Application Server를 설치하면 내부 테스트에 적절한 NSS(Network Security Services) 형식으로 디지털 인증서가 생성됩니다. 기본적으로 Application Server는 domain-dir/config 디렉토리의 인증서 데이터베이스에 인증서 정보를 저장합니다.

Procedure인증서 파일의 위치를 변경하는 방법

개발용으로 제공된 keystore 및 truststore 파일은 domain-dir/config 디렉토리에 저장됩니다.

  1. 관리 콘솔 트리에서 구성을 확장합니다.

  2. Server-config(Admin Config) 노드를 확장합니다.

  3. JVM 설정 노드를 선택합니다.

  4. JVM 옵션 탭을 누릅니다.

  5. JVM 옵션 페이지의 값 필드에서 다음 값을 추가하거나 수정하여 인증서 파일의 새로운 위치를 반영합니다.


    -Dcom.sun.appserv.nss.db=${com.sun.aas.instanceRoot}/NSS-database-directory
    

    여기서 NSS-database-directory는 NSS 데이터베이스의 위치입니다.

  6. 저장을 누릅니다.

  7. 콘솔에 다시 시작해야 함이 표시되면 Application Server를 다시 시작합니다.

JSSE(Java Secure Socket Extension) 도구 사용

keytool을 사용하여 JSSE(Java Secure Socket Extension) 디지털 인증서를 설정하고 작업합니다. Platform Edition의 경우 Application Server는 서버측에서 JSSE 형식을 사용하여 인증서와 키 저장소를 관리합니다. Platform Edition과 Enterprise Edition 모두의 경우 클라이언트측(응용 프로그램 클라이언트 또는 독립 실행형)에서는 JSSE 형식을 사용합니다.

J2SE SDK에는 keytool이 함께 제공되므로 관리자가 공개/개인 키 쌍 및 연관된 인증서를 관리할 수 있습니다. 사용자가 통신 피어의 공개 키를 인증서 양식으로 캐시할 수도 있습니다.

keytool을 실행하려면 J2SE /bin 디렉토리가 경로에 있도록 쉘 환경을 구성하거나 도구에 대한 전체 경로를 명령줄에서 제공해야 합니다. keytool에 대한 자세한 내용은 http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html에 있는 keytool 설명서를 참조하십시오.

keytool 유틸리티 사용

다음 예는 JSSE 도구를 사용한 인증서 처리와 관련된 사용법을 보여줍니다.

Procedurekeytool 유틸리티를 사용하여 인증서를 생성하는 방법

keytool을 사용하여 인증서를 생성하고 가져오며 내보냅니다. 기본적으로 keytool은 실행될 디렉토리에 keystore 파일을 만듭니다.

  1. 인증서가 실행될 디렉토리로 변경합니다.

    인증서는 반드시 keystore와 truststore 파일이 있는 디렉토리(기본은 domain-dir/config)에 생성하십시오. 이 파일의 위치를 변경하는 방법에 대한 자세한 내용은 인증서 파일의 위치를 변경하는 방법을 참조하십시오.

  2. 다음의 keytool 명령을 입력하여 keystore 파일 keystore.jks에 인증서를 생성합니다.


    keytool -genkey -alias keyAlias-keyalg RSA
     -keypass changeit
     -storepass changeit
    -keystore keystore.jks

    keyAlias와 같이 고유한 이름을 사용합니다. keystore 또는 개인 키 비밀번호의 기본값을 변경한 경우 위 명령의 changeit을 새 비밀번호로 대체합니다.

    이름, 조직 및 keytool이 인증서를 생성하는 데 사용할 기타 정보를 묻는 메시지가 표시됩니다.

  3. 다음의 keytool 명령을 입력하여 생성된 인증서를 server.cer(아니면 client.cer) 파일로 내보냅니다.


    keytool -export -alias keyAlias-storepass changeit
     -file server.cer
     -keystore keystore.jks
  4. 인증 기관이 서명한 인증서가 필요한 경우는 keytool 유틸리티를 사용하여 디지털 인증서에 서명하는 방법을 참조하십시오.

  5. cacerts.jks truststore 파일을 만들고 인증서를 truststore에 추가하려면 다음의 keytool 명령을 입력합니다.


    keytool -import -v -trustcacerts
    -alias keyAlias
     -file server.cer
    -keystore cacerts.jks
     -keypass changeit

    keystore 또는 개인 키 비밀번호의 기본값을 변경한 경우 위 명령의 changeit을 새 비밀번호로 대체합니다.

    도구는 인증서에 대한 정보를 표시하고 해당 인증서에 대한 신뢰 여부를 묻습니다.

  6. yes를 입력하고 Enter 키를 누릅니다.

    그러면 keytool은 다음과 같은 메시지를 표시합니다.


    Certificate was added to keystore
    [Saving cacerts.jks]
  7. Application Server를 다시 시작합니다.

Procedurekeytool 유틸리티를 사용하여 디지털 인증서에 서명하는 방법

디지털 인증서를 만든 후 소유자는 위조를 막기 위해 인증서에 서명해야 합니다. 전자 상거래 사이트나 아이디 인증이 중요한 사이트는 잘 알려진 인증 기관(CA)에서 인증서를 구매할 수 있습니다. 인증이 중요하지 않은 경우, 예를 들어 개인적인 보안 통신만 필요한 경우에는 인증서를 얻는데 필요한 시간과 경비를 절약하고 자체 서명된 인증서를 사용합니다.

  1. CA의 웹 사이트에서 지침을 수행하여 인증서 키 쌍을 생성합니다.

  2. 생성된 인증서 키 쌍을 다운로드합니다.

    인증서는 반드시 keystore와 truststore 파일이 있는 디렉토리(기본은 domain-dir/config 디렉토리)에 저장하십시오. 인증서 파일의 위치를 변경하는 방법을 참조하십시오.

  3. 쉘에서 인증서가 있는 디렉토리로 변경합니다.

  4. keytool을 사용하여 인증서를 로컬 keystore로 가져오고, 필요한 경우 로컬 truststore로도 가져옵니다.


    keytool -import -v -trustcacerts
    -alias keyAlias
     -file server.cer
    -keystore cacerts.jks
     -keypass changeit
    -storepass changeit

    keystore 또는 개인 키 비밀번호의 기본값을 변경한 경우 위 명령의 changeit을 새 비밀번호로 대체합니다.

  5. Application Server를 다시 시작합니다.

keytool 유틸리티를 사용하여 인증서를 삭제하는 방법

기존의 인증서를 삭제하려면 다음 예와 같이 keytool -delete 명령을 사용합니다.

keytool -delete
 -alias keyAlias
 -keystore keystore-name
 -storepass password

-delete에 대한 자세한 내용은 http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html에 있는 keytool 설명서를 참조하십시오.

NSS(Network Security Services) 도구 사용

Enterprise Edition의 경우 서버측에서 NSS(Network Security Services) 디지털 인증서를 사용하여 개인 키와 인증서를 저장하는 데이터베이스를 관리합니다. 클라이언트측(응용 프로그램 클라이언트 또는 독립 실행형)의 경우 JSSE(Java Secure Socket Extension) 도구 사용에서 설명한 대로 JSSE 형식을 사용합니다.

NSS(Network Security Services)를 사용하여 보안을 관리하는 도구는 다음 사항을 포함합니다.

도구는 install-dir/lib/ 디렉토리에 있습니다. 다음 환경 변수는 NSS 보안 도구의 위치를 나타내는 데 사용됩니다.

예에서 인증서 공통 이름(CN)은 클라이언트나 서버의 이름입니다. CN은 SSL 핸드셰이크 중에 인증서 이름과 인증서를 만든 호스트 이름을 비교하는 데도 사용됩니다. 인증서 이름과 호스트 이름이 일치하지 않으면 SSL 핸드셰이크 중에 경고나 예외가 생성됩니다. 몇 가지 예에서 편의상 인증서 공통 이름 CN=localhost가 사용되는데 모든 사용자는 실제 호스트 이름을 사용하여 새 인증서를 만드는 대신 이 인증서를 사용할 수 있습니다.

다음 예는 NSS 도구를 사용한 인증서 처리와 관련된 사용법을 보여줍니다.

certutil 유틸리티 사용

인증서 데이터베이스 도구인 certutil은 Netscape Communicator cert8.dbkey3.db 데이터베이스 파일을 작성 및 수정할 수 있는 명령줄 유틸리티입니다. 또한 cert8.db 파일 내에 인증서를 나열, 생성, 수정 또는 삭제하거나, 비밀번호를 작성 또는 변경하거나 새로운 공개 및 개인 키 쌍을 생성하거나, 키 데이터베이스 내용을 표시하거나 key3.db 파일 내의 키 쌍을 삭제할 수도 있습니다.

키와 인증서 관리 프로세스는 대개 키 데이터베이스에 키를 만든 다음 인증서 데이터베이스에 인증서를 생성 및 관리하는 것으로 시작됩니다. 다음의 설명서에서는 certutil 유틸리티의 구문을 포함하여 NSS를 사용한 인증서 및 키 데이터베이스 관리에 대해 설명합니다. http://www.mozilla.org/projects/security/pki/nss/tools/certutil.html

아래 목록의 각 항목은 NSS 및 JSSE 보안 도구를 사용하여 인증서를 만들거나 관리하는 예를 보여줍니다.

pk12util 유틸리티를 사용하여 인증서 가져오기 및 내보내기

pk12util은 PKCS12 형식의 인증서/키 데이터베이스 및 파일 간에 키와 인증서를 가져오고 내보내는 데 사용하는 명령줄 유틸리티입니다. PKCS12는 Personal Information Exchange Syntax Standard(개인 정보 상호 교환 구문 표준)의 PKCS(Public-Key Cryptography Standards) #12입니다. pk12util 유틸리티에 대한 자세한 내용은 http://www.mozilla.org/projects/security/pki/nss/tools/pk12util.html을 참조하십시오.

modutil을 사용하여 PKCS11 모듈 추가 및 삭제

보안 모듈 데이터베이스 도구modutilsecmod.db 파일이나 하드웨어 토큰 내에서 PKCS #11(Cryptographic Token Interface Standard, 암호화 토큰 인터페이스 표준) 모듈 정보를 관리하는 명령줄 유틸리티입니다. 이 도구를 사용하여 PKCS #11 모듈을 추가 및 삭제하고, 비밀번호를 변경하며 기본값을 설정하고, 모듈 내용을 나열하고 슬롯을 활성화하거나 비활성화하며, FIPS-140-1 호환을 활성화하거나 비활성화하고 기본 공급자를 암호화 작업에 할당할 수 있습니다. 이 도구는 key3.db, cert7.dbsecmod.db 보안 데이터베이스 파일도 만들 수 있습니다. 이 도구에 대한 자세한 내용은 http://www.mozilla.org/projects/security/pki/nss/tools/modutil.html을 참조하십시오.