Show Menu
TOPICS×

Dispatcher에 SSL 사용

Dispatcher와 렌더링 컴퓨터 간의 SSL 연결 사용:
SSL 인증서와 관련된 작업은 타사 제품에 바인딩됩니다. Adobe Platinum 유지 관리 및 지원 계약의 적용을 받지 않습니다.

디스패처가 AEM에 연결할 때 SSL 사용

SSL 연결을 사용하여 AEM 또는 CQ 렌더링 인스턴스와 통신하도록 Dispatcher를 구성합니다.
Dispatcher를 구성하려면 먼저 AEM 또는 CQ를 구성하여 SSL을 사용합니다.

SSL을 사용하도록 디스패처 구성

SSL을 통해 AEM 또는 CQ와 연결하도록 Dispatcher를 구성하려면 dispatcher.any 파일에 다음 속성이 필요합니다.
  • HTTPS 요청을 처리하는 가상 호스트입니다.
  • 가상 호스트의
    renders
    섹션에는 HTTPS를 사용하는 CQ 또는 AEM 인스턴스의 호스트 이름과 포트를 식별하는 항목이 포함되어 있습니다.
  • renders
    항목에는 값
    secure
    속성이 포함됩니다
    1
    .
참고:필요한 경우 HTTP 요청을 처리할 다른 가상 호스트를 만듭니다.
다음 예제 dispatcher.any 파일은 HTTPS를 사용하여 호스트
localhost
및 포트에서 실행 중인 CQ 인스턴스에 연결하는 속성 값을 보여줍니다.
8443
/farms { /secure { /virtualhosts { # select this farm for all incoming HTTPS requestss "https://*" } /renders { /0001 { # hostname or IP of the render /hostname "localhost" # port of the render /port "8443" # connect via HTTPS /secure "1" } } # the rest of the properties are omitted } /non-secure { /virtualhosts { # select this farm for all incoming HTTP requests "https://*" } /renders { /0001 { # hostname or IP of the render /hostname "localhost" # port of the render /port "4503" } } # the rest of the properties are omitted }

Dispatcher와 AEM 간 상호 SSL 구성

Dispatcher와 렌더링 컴퓨터(일반적으로 AEM 또는 CQ 게시 인스턴스) 간의 연결을 구성하여 Mutual SSL을 사용합니다.
  • Dispatcher는 SSL을 통해 렌더링 인스턴스에 연결합니다.
  • 렌더링 인스턴스는 Dispatcher의 인증서의 유효성을 확인합니다.
  • Dispatcher는 렌더링 인스턴스의 인증서를 신뢰할 수 있는지 확인합니다.
  • (선택 사항) 디스패처는 렌더링 인스턴스의 인증서가 렌더링 인스턴스의 서버 주소와 일치하는지 확인합니다.
상호 SSL을 구성하려면 신뢰할 수 있는 인증 기관(CA)에서 서명한 인증서가 필요합니다. 자체 서명된 인증서는 적절하지 않습니다. 인증 기관 역할을 하거나 서드 파티 CA의 서비스를 사용하여 인증서를 서명할 수 있습니다. 상호 SSL을 구성하려면 다음 항목이 필요합니다.
  • 렌더링 인스턴스 및 발송자에 대한 서명된 인증서
  • CA 인증서(CA 역할을 하는 경우)
  • CA, 인증서 및 인증서 요청을 생성하기 위한 OpenSSL 라이브러리
상호 SSL을 구성하려면 다음 단계를 수행하십시오.
  1. 플랫폼용 최신 버전의 Dispatcher를 설치합니다 . SSL을 지원하는 Dispatcher 바이너리를 사용합니다(예: dispatcher-apache2.4-linux-x86-64-ssl10-4.1.7.tar).
  2. 렌더링 인증서가 포함된 키 저장소를 만들고 렌더의 HTTP 서비스를 구성하여 사용합니다.
  3. Dispatcher 웹 서버 모듈을 상호 SSL에 맞게 구성합니다.

CA 서명 인증서 만들기 또는 얻기

게시 인스턴스 및 디스패처를 인증하는 CA 서명 인증서를 만들거나 받습니다.

CA 만들기

CA를 사용하는 경우 OpenSSL을 사용하여 서버 및 클라이언트 인증서를 서명하는 인증 기관을 만듭니다. OpenSSL 라이브러리가 설치되어 있어야 합니다. 타사 CA를 사용하는 경우 이 절차를 수행하지 마십시오.
  1. 터미널을 열고 현재 디렉토리를 CA.sh 파일을 포함하는 디렉토리로 변경합니다(예:
    /usr/local/ssl/misc
    ).
  2. CA를 만들려면 다음 명령을 입력한 다음 문제가 발생할 때 값을 제공합니다.
    ./CA.sh -newca
    openssl.cnf 파일의 여러 속성은 CA.sh 스크립트의 동작을 제어합니다. CA를 만들기 전에 이 파일을 필요에 따라 수정해야 합니다.

인증서 만들기

OpenSSL을 사용하여 타사 CA로 보내거나 CA로 서명할 인증서 요청을 만듭니다.
인증서를 만들 때 OpenSSL은 공통 이름 속성을 사용하여 인증서 소유자를 식별합니다. 렌더링 인스턴스의 인증서에 대해 Dispatcher가 Publish 인스턴스의 호스트 이름과 일치하는 경우에만 인증서를 허용하도록 구성하는 경우 인스턴스 컴퓨터의 호스트 이름을 일반 이름으로 사용합니다. (DispatcherCheckPeerCN 속성을 참조하십시오.)
  1. 터미널을 열고 현재 디렉토리를 OpenSSL 라이브러리의 CH.sh 파일이 포함된 디렉토리로 변경합니다.
  2. 다음 명령을 입력하고 메시지가 표시되면 값을 입력합니다. 필요한 경우 게시 인스턴스의 호스트 이름을 일반 이름으로 사용합니다. 호스트 이름은 렌더링의 IP 주소에 대한 DNS 확인 가능한 이름입니다.
    ./CA.sh -newreq
    타사 CA를 사용하는 경우 CA에 newreq.pem 파일을 보내 서명하십시오. CA의 역할을 하는 경우 3단계를 계속 진행합니다.
  3. 다음 명령을 입력하여 CA 인증서를 사용하여 인증서를 서명합니다.
    ./CA.sh -sign
    CA 관리 파일이 들어 있는 디렉토리에 newcert.pem과 newkey.pem이라는 두 파일이 생성됩니다. 렌더링 컴퓨터의 공용 인증서와 개인 키입니다.
  4. newcert.pem의 이름을 rendercert.pem으로 변경하고 newkey.pem의 이름을 renderkey.pem으로 변경합니다.
  5. 2단계와 3단계를 반복하여 Dispatcher 모듈에 대한 새 인증서와 새 공개 키를 만듭니다. Dispatcher 인스턴스에만 사용되는 공통 이름을 사용해야 합니다.
  6. newcert.pem의 이름을 discert.pem으로 변경하고 newkey.pem의 이름을 disvokey.pem으로 변경합니다.

렌더링 컴퓨터에서 SSL 구성

rendercert.pem 및 renderkey.pem 파일을 사용하여 렌더링 인스턴스에서 SSL을 구성합니다.

렌더링 인증서를 JKS 형식으로 변환

다음 명령을 사용하여 PEM 파일인 렌더링 인증서를 PKCS#12 파일로 변환합니다. 렌더링 인증서에 서명한 CA의 인증서도 포함합니다.
  1. 터미널 창에서 현재 디렉토리를 렌더링 인증서 및 개인 키 위치로 변경합니다.
  2. PEM 파일인 렌더링 인증서를 PKCS#12 파일로 변환하려면 다음 명령을 입력합니다. 렌더링 인증서에 서명한 CA의 인증서도 포함합니다.
    openssl pkcs12 -export -in rendercert.pem -inkey renderkey.pem -certfile demoCA/cacert.pem -out rendercert.p12
  3. 다음 명령을 입력하여 PKCS#12 파일을 Java KeyStore(JKS) 형식으로 변환합니다.
    keytool -importkeystore -srckeystore servercert.p12 -srcstoretype pkcs12 -destkeystore render.keystore
  4. Java 키 저장소는 기본 별칭을 사용하여 만들어집니다. 원하는 경우 별칭을 변경합니다.
    keytool -changealias -alias 1 -destalias jettyhttp -keystore render.keystore

Render의 Truststore에 CA 인증서 추가

CA 역할을 하는 경우 CA 인증서를 키 저장소에 가져옵니다. 그런 다음 키 저장소를 신뢰하도록 렌더링 인스턴스를 실행하는 JVM을 구성합니다.
  1. 텍스트 편집기를 사용하여 cacert.pem 파일을 열고 다음 줄 앞에 오는 모든 텍스트를 제거합니다.
    -----BEGIN CERTIFICATE-----
  2. 다음 명령을 사용하여 인증서를 키 저장소에 가져옵니다.
    keytool -import -keystore cacerts.keystore -alias myca -storepass password -file cacert.pem
  3. 키 저장소를 신뢰하도록 렌더링 인스턴스를 실행하는 JVM을 구성하려면 다음 시스템 속성을 사용합니다.
    -Djavax.net.ssl.trustStore=<location of cacerts.keystore>
    예를 들어 crx-quickstart/bin/quickstart 스크립트를 사용하여 게시 인스턴스를 시작하는 경우 CQ_JVM_OPTS 속성을 수정할 수 있습니다.
    CQ_JVM_OPTS='-server -Xmx2048m -XX:MaxPermSize=512M -Djavax.net.ssl.trustStore=/usr/lib/cq6.0/publish/ssl/cacerts.keystore'

렌더링 인스턴스 구성

## 섹션에 있는* 지침과 함께 렌더링 인증서를 사용하여 SSL을 사용하도록 렌더링 인스턴스의 HTTP 서비스를 구성합니다.

발송자 모듈에 대한 SSL 구성

Dispatcher가 상호 SSL을 사용하도록 구성하려면 Dispatcher 인증서를 준비한 다음 웹 서버 모듈을 구성합니다.

통합 발송자 인증서 만들기

발송자 인증서와 암호화되지 않은 개인 키를 하나의 PEM 파일로 결합합니다. 텍스트 편집기 또는
cat
명령을 사용하여 다음 예와 유사한 파일을 만듭니다.
  1. 터미널을 열고 현재 디렉토리를 display.pem 파일의 위치로 변경합니다.
  2. 개인 키를 해독하려면 다음 명령을 입력합니다.
    openssl rsa -in dispkey.pem -out dispkey_unencrypted.pem
  3. 텍스트 편집기 또는
    cat
    명령을 사용하여 암호화되지 않은 개인 키와 인증서를 다음 예와 유사한 하나의 파일에 결합합니다.
    -----BEGIN RSA PRIVATE KEY----- MIICxjBABgkqhkiG9w0B... ...M2HWhDn5ywJsX -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIC3TCCAk... ...roZAs= -----END CERTIFICATE-----

발송자에 사용할 인증서 지정

Dispatcher 모듈 구성 (in
httpd.conf
)에 다음 속성을 추가합니다.
  • DispatcherCertificateFile
    :공개 인증서와 암호화되지 않은 개인 키가 포함된 Dispatcher 통합 인증서 파일의 경로입니다. 이 파일은 SSL 서버가 Dispatcher 클라이언트 인증서를 요청할 때 사용됩니다.
  • DispatcherCACertificateFile
    :SSL 서버가 루트 인증 기관에서 신뢰하지 않는 CA를 표시하는 경우 사용되는 CA 인증서 파일의 경로입니다.
  • DispatcherCheckPeerCN
    :원격 서버 인증서에 대한 호스트 이름 확인을 활성화(
    On
    ) 또는 비활성화(
    Off
    )할지 여부.
다음 코드는 구성 예입니다.
<IfModule disp_apache2.c> DispatcherConfig conf/dispatcher.any DispatcherLog logs/dispatcher.log DispatcherLogLevel 3 DispatcherNoServerHeader 0 DispatcherDeclineRoot 0 DispatcherUseProcessedURL 0 DispatcherPassError 0 DispatcherCertificateFile disp_unified.pem DispatcherCACertificateFile cacert.pem DispatcherCheckPeerCN On </IfModule>