Show Menu
主題×

將 SSL 與 Dispatcher 搭配使用

在Dispatcher和Render電腦之間使用SSL連接:
與SSL憑證相關的作業會系結至第三方產品。 Adobe白金級維護與支援合約未涵蓋這些條款。

Dispatcher連線至AEM時使用SSL

設定Dispatcher以使用SSL連線與AEM或CQ演算例項通訊。
在設定Dispatcher之前,請先設定AEM或CQ以使用SSL:

配置Dispatcher以使用SSL

若要設定Dispatcher以透過SSL與AEM或CQ連線,您的 dispatcher.any 檔案需要下列屬性:
  • 處理HTTPS請求的虛擬主機。
  • renders
    擬主機的區段包含識別使用HTTPS之CQ或AEM例項之主機名稱和連接埠的項目。
  • renders
    目包含名為value
    secure
    的屬性
    1
注意:如果需要,請建立另一個虛擬主機以處理HTTP請求。
以下示例dispatcher.any檔案顯示了使用HTTPS連接到在主機和埠上運行的CQ實例的
localhost
屬性值
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會驗證演算例項憑證的CA是否受信任。
  • (可選)Dispatcher會驗證演算例項的憑證是否符合演算例項的伺服器位址。
要配置互用SSL,您需要由受信任證書頒發機構(CA)簽名的證書。 自簽證書不夠。 您可以擔任CA,或使用協力廠商CA的服務來簽署憑證。 若要設定相互SSL,您需要下列項目:
  • 演算實例和Dispatcher的已簽名證書
  • CA證書(如果您充當CA)
  • OpenSSL程式庫,以產生CA、憑證和憑證要求。
請執行下列步驟來設定互用SSL:
  1. 為您的平台安裝 最新版本的Dispatcher。 使用支援SSL的Dispatcher二進位檔案(SSL在檔案名中,如dispatcher-apache2.4-linux-x86-64-ssl10-4.1.7.tar)。
  2. 建立包含轉譯憑證的金鑰庫 ,並設定轉譯的HTTP服務以使用它。

建立或獲取CA簽名證書

建立或取得CA簽署的憑證,以驗證發佈執行個體和Dispatcher。

建立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. 輸入以下命令,並在出現提示時提供值。 如有需要,請使用發佈實例的主機名作為公用名。 主機名是DNS可解析的Render IP地址名稱:
    ./CA.sh -newreq
    如果您使用協力廠商CA,請將newreq.pem檔案傳送至CA進行簽署。 如果您是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更名為dispcert.pem,並將newkey.pem更名為dispkey.pem。

在Render電腦上配置SSL

使用rendercert.pem和renderkey.pem檔案,在render實例上設定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

將CA證書添加到Render的Truststore

如果您是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'

配置Render實例

使用演算憑證及「發佈例項」區段中 ** 「啟用SSL」中的指示,將演算例項的HTTP服務設定為使用SSL:

為Dispatcher模組配置SSL

要配置Dispatcher以使用互相SSL,請準備Dispatcher證書,然後配置Web伺服器模組。

建立Unified Dispatcher證書

將調度器憑證和未加密的私密金鑰結合為單一PEM檔案。 使用文本編輯器或
cat
命令建立類似以下示例的檔案:
  1. 開啟終端,將當前目錄更改為dispkey.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的證書

將以下屬性添加到 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>