Dispatcher에 SSL 사용 using-ssl-with-dispatcher
Dispatcher와 렌더링 컴퓨터 간에 SSL 연결을 사용합니다.
Dispatcher가 AEM에 연결할 때 SSL 사용 use-ssl-when-dispatcher-connects-to-aem
SSL 연결을 사용하여 AEM 또는 CQ 렌더링 인스턴스와 통신하도록 Dispatcher를 구성합니다.
Dispatcher를 구성하기 전에 SSL을 사용하도록 AEM 또는 CQ를 구성하십시오. 자세한 내용은 다음을 참조하십시오.
SSL 관련 요청 헤더 ssl-related-request-headers
Dispatcher가 HTTPS 요청을 수신하면 Dispatcher는 AEM 또는 CQ로 보내는 후속 요청에 다음 헤더를 포함합니다.
X-Forwarded-SSLX-Forwarded-SSL-CipherX-Forwarded-SSL-KeysizeX-Forwarded-SSL-Session-ID
mod_ssl이 있는 Apache-2.4를 통한 요청에는 다음 예와 유사한 헤더가 포함됩니다.
X-Forwarded-SSL: on
X-Forwarded-SSL-Cipher: DHE-RSA-AES256-SHA
X-Forwarded-SSL-Session-ID: 814825E8CD055B4C166C2EF6D75E1D0FE786FFB29DEB6DE1E239D5C771CB5B4D
            SSL을 사용하도록 Dispatcher 구성 configuring-dispatcher-to-use-ssl
SSL을 통해 AEM 또는 CQ와 연결하도록 Dispatcher를 구성하려면 dispatcher.any 파일에 다음 속성이 필요합니다.
- HTTPS 요청을 처리하는 가상 호스트입니다.
 - 가상 호스트의 
renders섹션에는 HTTPS를 사용하는 CQ 또는 AEM 인스턴스의 호스트 이름과 포트를 식별하는 항목이 포함됩니다. renders항목은1값의secure라는 속성을 포함합니다.
참고: 필요한 경우 HTTP 요청을 처리하기 위해 다른 가상 호스트를 만듭니다.
다음 예제 dispatcher.any 파일은 호스트 localhost 및 포트 8443에서 실행 중인 CQ 인스턴스에 HTTPS를 사용하여 연결하기 위한 속성 값을 보여 줍니다.
/farms
{
   /secure
   {
      /virtualhosts
      {
         # select this farm for all incoming HTTPS requests
         "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
         "http://*"
      }
      /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 구성 configuring-mutual-ssl-between-dispatcher-and-aem
상호 SSL을 사용하도록 Dispatcher와 렌더링 컴퓨터(일반적으로 AEM 또는 CQ 게시 인스턴스) 간의 연결을 구성합니다.
- Dispatcher는 SSL을 통해 렌더링 인스턴스에 연결합니다.
 - 렌더링 인스턴스는 Dispatcher 인증서의 유효성을 확인합니다.
 - Dispatcher는 렌더링 인스턴스 인증서의 CA가 신뢰할 수 있는지 확인합니다.
 - (선택 사항) Dispatcher는 렌더링 인스턴스의 인증서가 렌더링 인스턴스의 서버 주소와 일치하는지 확인합니다.
 
상호 SSL을 구성하려면 신뢰할 수 있는 인증 기관(CA)에서 서명한 인증서가 필요합니다. 자체 서명된 인증서는 적절하지 않습니다. 직접 CA 역할을 하거나 서드파티 CA의 서비스를 사용하여 인증서에 서명할 수 있습니다. 상호 SSL을 구성하려면 다음 항목이 필요합니다.
- 렌더링 인스턴스 및 Dispatcher에 대한 서명된 인증서
 - CA 인증서 (직접 CA 역할을 하는 경우)
 - CA, 인증서 및 인증서 요청을 생성하기 위한 OpenSSL 라이브러리.
 
상호 SSL을 구성하도록 다음 단계를 수행합니다.
- 플랫폼을 위한 최신 버전의 Dispatcher를 설치합니다. SSL을 지원하는 Dispatcher 바이너리를 사용합니다. SSL은 파일 이름에 있습니다(예: 
dispatcher-apache2.4-linux-x86-64-ssl10-4.1.7.tar). - Dispatcher 및 렌더링 인스턴스를 위한 CA 서명 인증서를 생성하거나 획득합니다.
 - 렌더링 인증서를 포함하는 키 저장소를 생성하고 렌더링의 HTTP 서비스를 구성합니다.
 - 상호 SSL을 위한 Dispatcher 웹 서버 모듈을 구성합니다.
 
CA 서명 인증서 생성 또는 획득 creating-or-obtaining-ca-signed-certificates
게시 인스턴스 및 Dispatcher를 인증하는 CA 서명 인증서를 생성하거나 획득합니다.
CA 생성 creating-your-ca
직접 CA 역할을 하는 경우 OpenSSL을 사용하여 서버 및 클라이언트 인증서에 서명하는 인증 기관을 생성합니다. (OpenSSL 라이브러리가 설치되어 있어야 합니다.) 서드파티 CA를 사용하는 경우 이 절차를 수행하지 마십시오.
- 
                  
터미널을 열고 현재 디렉터리를
CA.sh파일이 포함된 디렉터리로 변경합니다(예:/usr/local/ssl/misc). - 
                  
CA를 생성하려면 다음 명령을 입력한 다음 메시지가 표시될 때 값을 제공합니다
code language-shell ./CA.sh -newcanote note NOTE openssl.cnf파일의 여러 속성은 CA.sh 스크립트의 동작을 제어합니다. CA를 만들기 전에 필요에 따라 이 파일을 편집합니다. 
인증서 생성 creating-the-certificates
OpenSSL을 사용하여 서드파티 CA로 보내거나 자체 CA로 서명할 인증서 요청을 생성합니다.
인증서를 만들 때 OpenSSL은 일반 이름 속성을 사용하여 인증서 소유자를 식별합니다. 렌더링 인스턴스의 인증서에 대해 인증서를 수락하도록 Dispatcher를 구성하는 경우 인스턴스 컴퓨터의 호스트 이름을 일반 이름으로 사용합니다. 게시 인스턴스의 호스트 이름과 일치하는 경우에만 이 절차를 수행하십시오. DispatcherCheckPeerCN 속성을 참조하십시오.
- 
                  
터미널을 열고 현재 디렉터리를 OpenSSL 라이브러리의 CH.sh 파일이 포함된 디렉터리로 변경합니다.
 - 
                  
다음 명령을 입력하고 메시지가 표시되면 값을 제공합니다. 필요한 경우 게시 인스턴스의 호스트 이름을 일반 이름으로 사용하십시오. 호스트 이름은 렌더링의 IP 주소에 대한 DNS 확인 가능 이름입니다.
code language-shell ./CA.sh -newreq서드파티 CA를 사용하는 경우 newreq.pem 파일을 CA로 보내 서명합니다. 직접 CA 역할을 하는 경우 3단계로 이동합니다.
 - 
                  
CA의 인증서를 사용하여 인증서에 서명하려면 다음 명령을 입력합니다.
code language-shell ./CA.sh -signCA 관리 파일이 포함된 디렉터리에 및
newcert.pem및newkey.pem이라는 두 개의 파일이 생성됩니다. 이러한 두 파일은 각각 렌더링 컴퓨터의 공개 인증서와 개인 키입니다. - 
                  
newcert.pem을rendercert.pem으로 이름을 바꾸고newkey.pem을renderkey.pem으로 이름을 바꿉니다. - 
                  
2단계와 3단계를 반복하여 Dispatcher 모듈을 위한 인증서와 공개 키를 만듭니다. Dispatcher 인스턴스에 고유한 일반 이름을 사용하는지 확인하십시오.
 - 
                  
newcert.pem을dispcert.pem으로 이름을 바꾸고newkey.pem을dispkey.pem으로 이름을 바꿉니다. 
렌더링 컴퓨터에서 SSL 구성 configuring-ssl-on-the-render-computer
rendercert.pem 및 renderkey.pem 파일을 사용하여 렌더링 인스턴스에서 SSL을 구성합니다.
JKS(Java™ KeyStore) 포맷으로 렌더링 인증서 변환 converting-the-render-certificate-to-jks-format
다음 명령을 사용하여 PEM 파일인 렌더링 인증서를 PKCS#12 파일로 변환합니다. 또한 렌더링 인증서에 서명한 CA의 인증서를 포함합니다.
- 
                  
터미널 창에서 현재 디렉터리를 렌더링 인증서 및 개인 키 위치로 변경합니다.
 - 
                  
PEM 파일인 렌더링 인증서를 PKCS#12 파일로 변환하려면 다음 명령을 입력합니다. 또한 렌더링 인증서에 서명한 CA의 인증서를 포함합니다.
code language-shell openssl pkcs12 -export -in rendercert.pem -inkey renderkey.pem -certfile demoCA/cacert.pem -out rendercert.p12 - 
                  
PKCS#12 파일을 Java™ KeyStore(JKS) 포맷으로 변환하려면 다음 명령을 입력합니다.
code language-shell keytool -importkeystore -srckeystore servercert.p12 -srcstoretype pkcs12 -destkeystore render.keystore - 
                  
Java™ KeyStore는 기본 별칭을 사용하여 작성됩니다. 원하는 경우 별칭을 변경합니다.
code language-shell keytool -changealias -alias 1 -destalias jettyhttp -keystore render.keystore 
렌더링의 신뢰 저장소에 CA 인증서 추가 adding-the-ca-cert-to-the-render-s-truststore
CA 역할을 하는 경우 CA 인증서를 키 저장소로 가져옵니다. 그런 다음 키 저장소를 신뢰하도록 렌더링 인스턴스를 실행하는 JVM을 구성합니다.
- 
                  
텍스트 편집기를 사용하여 cacert.pem 파일을 열고 다음 줄 앞에 있는 모든 텍스트를 제거합니다.
-----BEGIN CERTIFICATE----- - 
                  
다음 명령을 사용하여 인증서를 키 저장소로 가져옵니다.
code language-shell keytool -import -keystore cacerts.keystore -alias myca -storepass password -file cacert.pem - 
                  
키 저장소를 신뢰하도록 렌더링 인스턴스를 실행하는 JVM을 구성하려면 다음 시스템 속성을 사용하십시오.
code language-shell -Djavax.net.ssl.trustStore=<location of cacerts.keystore>예를 들어 crx-quickstart/bin/quickstart 스크립트를 사용하여 게시 인스턴스를 시작하는 경우 CQ_JVM_OPTS 속성을 수정할 수 있습니다.
code language-shell CQ_JVM_OPTS='-server -Xmx2048m -XX:MaxPermSize=512M -Djavax.net.ssl.trustStore=/usr/lib/cq6.0/publish/ssl/cacerts.keystore' 
렌더링 인스턴스 구성 configuring-the-render-instance
렌더링 인스턴스의 HTTP 서비스를 구성하여 SSL을 사용하려면 Enable SSL on the Publish Instance 섹션의 지침에 따라 렌더링 인증서를 사용합니다.
- AEM 6.2: SSL을 통한 HTTP 활성화
 - AEM 6.1: SSL을 통한 HTTP 활성화
 - 이전 AEM 버전: 이 페이지를 참조하십시오.
 
Dispatcher 모듈용 SSL 구성 configuring-ssl-for-the-dispatcher-module
Dispatcher가 상호 SSL을 사용하도록 구성하려면 Dispatcher 인증서를 준비한 후 웹 서버 모듈을 구성합니다.
통합 Dispatcher 인증서 생성 creating-a-unified-dispatcher-certificate
Dispatcher 인증서와 암호화되지 않은 개인 키를 단일 PEM 파일로 결합합니다. 텍스트 편집기 또는 cat 명령을 사용하여 다음 예제와 유사한 파일을 생성하십시오.
- 
                  
터미널을 열고 현재 디렉터리를 dispkey.pem 파일 위치로 변경합니다.
 - 
                  
개인 키를 해독하려면 다음 명령을 입력하십시오.
code language-shell openssl rsa -in dispkey.pem -out dispkey_unencrypted.pem - 
                  
텍스트 편집기 또는
cat명령을 사용하여 다음 예와 유사한 단일 파일에서 암호화되지 않은 개인 키와 인증서를 결합하십시오.code language-xml -----BEGIN RSA PRIVATE KEY----- MIICxjBABgkqhkiG9w0B... ...M2HWhDn5ywJsX -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- MIIC3TCCAk... ...roZAs= -----END CERTIFICATE----- 
Dispatcher에 사용할 인증서 지정 specifying-the-certificate-to-use-for-dispatcher
Dispatcher 모듈 구성 (httpd.conf)에 다음 속성을 추가하십시오.
DispatcherCertificateFile: 공개 인증서와 암호화되지 않은 개인 키가 포함된 Dispatcher 통합 인증서 파일의 경로입니다. 이 파일은 SSL 서버가 Dispatcher 클라이언트 인증서를 요청할 때 사용됩니다.DispatcherCACertificateFile: CA 인증서 파일에 대한 경로. SSL 서버가 루트 기관이 신뢰하지 않는 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>