3.3. 애플리케이션 자체 인증서 지정

3.3.1. HTTPS용 자체 인증서 배포

3.3.1.1. 개요

HTTPS 전송으로 작업할 때 애플리케이션의 인증서는 XML 구성 파일을 사용하여 배포됩니다.

3.3.1.2. 절차

HTTPS 전송을 위해 애플리케이션 자체 인증서를 배포하려면 다음 단계를 수행합니다.

  1. Java 키 저장소 형식 CertName.jks 로 애플리케이션 인증서를 가져옵니다. Java 키 저장소 형식으로 인증서를 생성하는 방법에 대한 자세한 내용은 2.5.3절. “CA를 사용하여 Java 키 저장소에서 서명된 인증서 생성” 을 참조하십시오.

    참고

    일부 HTTPS 클라이언트(예: 웹 브라우저)는 서버가 배포된 호스트 이름과 일치하도록 인증서의 ID가 필요한 URL 무결성 검사를 수행합니다. 자세한 내용은 2.4절. “HTTPS 인증서에 대한 특수 요구 사항” 을 참조하십시오.

  2. 인증서의 키 저장소 CertName.jks 를 배포 호스트의 인증서 디렉터리에 복사합니다(예: X509Deploy/certs ).

    인증서 디렉터리는 관리자 및 기타 권한 있는 사용자만 쓸 수 있는 보안 디렉터리여야 합니다.

  3. 관련 XML 구성 파일을 편집하여 인증서 키 저장소 CertName.jks 의 위치를 지정합니다. 관련 HTTPS 포트 구성에 sec:keyManagers 요소를 포함해야 합니다.

    예를 들어 다음과 같이 클라이언트 포트를 구성할 수 있습니다.

    <http:conduit id="{Namespace}PortName.http-conduit">
      <http:tlsClientParameters>
        ...
        <sec:keyManagers keyPassword="CertPassword">
          <sec:keyStore type="JKS"
                        password="KeystorePassword"
                        file="certs/CertName.jks"/>
        </sec:keyManagers>
        ...
      </http:tlsClientParameters>
    </http:conduit>

    keyPassword 속성이 인증서의 개인 키(즉, CertPassword)를 해독하는 데 필요한 암호를 지정하고, truststore에서 JKS 키 저장소 구현을 사용하는 유형 특성 사양은 CertName.jks 키 저장소(즉, KeystorePassword)에 액세스하는 데 필요한 암호를 지정합니다.

    다음과 같이 서버 포트를 구성합니다.

    <http:destination id="{Namespace}PortName.http-destination">
      <http:tlsServerParameters secureSocketProtocol="TLSv1">
        ...
        <sec:keyManagers keyPassword="CertPassword">
          <sec:keyStore type="JKS"
                        password="KeystorePassword"
                        file="certs/CertName.jks"/>
        </sec:keyManagers>
        ...
      </http:tlsServerParameters>
    </http:destination>
    주의

    애플리케이션 인증서가 포함된 디렉터리(예: X509Deploy/certs/)는 보안 디렉터리여야 합니다(즉, 관리자가 읽고 쓸 수 있음).

    주의

    구성 파일에는 일반 텍스트로 암호가 포함되어 있으므로 XML 구성 파일이 포함된 디렉터리는 보안 디렉터리(즉, 관리자가 읽고 쓸 수 있음)여야 합니다.