Utilisez les connexions SSL entre Dispatcher et l’ordinateur de rendu :
Les opérations relatives à des certificats SSL sont liées à des produits tiers. Elles ne sont pas couvertes par le contrat d’assistance et de maintenance Adobe Platinum.
Configurez Dispatcher de sorte qu’il communique avec l’instance de rendu AEM ou CQ en utilisant des connexions SSL.
Avant de configurer Dispatcher, configurez AEM ou CQ de sorte que ces applications utilisent le protocole SSL :
Lorsque Dispatcher reçoit une requête HTTPS, il inclut les en-têtes suivants dans la demande suivante qu’il envoie à AEM ou CQ :
X-Forwarded-SSL
X-Forwarded-SSL-Cipher
X-Forwarded-SSL-Keysize
X-Forwarded-SSL-Session-ID
Une demande via Apache 2.4 avec mod_ssl
inclut des en-têtes similaires à l’exemple suivant :
X-Forwarded-SSL: on
X-Forwarded-SSL-Cipher: DHE-RSA-AES256-SHA
X-Forwarded-SSL-Session-ID: 814825E8CD055B4C166C2EF6D75E1D0FE786FFB29DEB6DE1E239D5C771CB5B4D
Pour configurer Dispatcher de sorte qu’il se connecte à AEM ou CQ via SSL, le fichier dispatcher.any requiert les propriétés suivantes :
renders
de l’hôte virtuel inclut un élément qui identifie le nom et le port de l’hôte de l’instance CQ ou AEM qui utilise HTTPS.renders
inclut une propriété nommée secure
d’une valeur de 1
.Remarque : Créez un autre hôte virtuel pour traiter les requêtes HTTP, si nécessaire.
L’exemple de fichier dispatcher.any suivant affiche les valeurs des propriétés pour la connexion via HTTPS à une instance CQ qui s’exécute sur l’hôte localhost
et le port 8443
:
/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
}
Configurez les connexions entre Dispatcher et l’ordinateur de rendu (généralement une instance de publication AEM ou CQ) pour utiliser le protocole SSL mutuel :
Pour configurer un protocole SSL mutuel, vous avez besoin de certificats signés par une autorité de certification approuvée. Les certificats auto-signés ne sont pas appropriés. Vous pouvez agir comme autorité de certification ou utiliser les services d’une autorité de certification tierce pour la signature des certificats. Pour configurer un protocole SSL mutuel, vous avez besoin des éléments suivants :
Procédez comme suit pour configurer le protocole SSL mutuel :
Créez ou obtenez des certificats signés par une autorité de certification qui authentifient l’instance de publication et Dispatcher.
Si vous agissez comme autorité de certification, utilisez OpenSSL pour créer l’autorité de certification qui signe les certificats du serveur et du client (vous devez disposer des bibliothèques OpenSSL). Si vous utilisez une autorité de certification tierce, ne suivez pas cette procédure.
Ouvrez un terminal et modifiez le répertoire actuel par le répertoire qui contient le fichier CA.sh, par exemple /usr/local/ssl/misc
.
Pour créer l’autorité de certification, saisissez la commande suivante, puis indiquez les valeurs lorsque vous y êtes invité :
./CA.sh -newca
Plusieurs propriétés du fichier openssl.cnf contrôlent le comportement du script CA.sh. Vous devez modifier ce fichier selon vos besoins avant de créer votre autorité de certification.
Utilisez OpenSSL pour créer des demandes de certificat à envoyer à l’autorité de certification tierce ou à signer avec votre autorité de certification.
Lorsque vous créez un certificat, OpenSSL utilise la propriété Nom commun pour identifier le détenteur du certificat. Pour le certificat de l’instance de rendu, utilisez le nom d’hôte de l’ordinateur de l’instance en tant que Nom commun si vous configurez Dispatcher de sorte à accepter le certificat uniquement s’il correspond au nom d’hôte de l’instance de publication. (Voir la propriété DispatcherCheckPeerCN.)
Ouvrez un terminal et définissez le répertoire actuel sur le répertoire contenant le fichier CH.sh des bibliothèques d’OpenSSL.
Entrez la commande suivante et indiquez les valeurs lorsque vous y êtes invité. Si nécessaire, utilisez le nom d’hôte de l’instance de publication comme nom commun. Le nom d’hôte est le nom résolvable DNS pour l’adresse IP du rendu :
./CA.sh -newreq
Si vous utilisez une autorité de certification tierce, envoyez le fichier newreq.pem à l’autorité de certification pour signature. Si vous agissez comme autorité de certification, passez à l’étape 3.
Saisissez la commande suivante pour signer le certificat à l’aide du certificat de l’autorité de certification :
./CA.sh -sign
Deux fichiers nommés newcert.pem et newkey.pem sont créés dans le répertoire qui contient les fichiers de gestion de l’autorité de certification. Il s’agit respectivement du certificat public et de la clé privée de l’ordinateur de rendu.
Renommez newcert.pem en rendercert.pem et newkey.pem en renderkey.pem.
Répétez les étapes 2 et 3 pour créer un nouveau certificat et une nouvelle clé publique pour le module de Dispatcher. Assurez-vous que vous utilisez un Nom commun qui est spécifique à l’instance de Dispatcher.
Renommez newcert.pem en dispcert.pem et newkey.pem en dispkey.pem.
Configurez le protocole SSL sur l’instance de rendu à l’aide des fichiers rendercert.pem et renderkey.pem.
Utilisez la commande suivante pour convertir le certificat du rendu, qui est un fichier PEM, en un fichier PKCS#12. Incluez également le certificat de l’autorité de certification qui a signé le certificat du rendu :
Dans une fenêtre de terminal, définissez le répertoire actuel sur l’emplacement du certificat du rendu et de la clé privée.
Entrez la commande suivante pour convertir le certificat du rendu, qui est un fichier PEM, en un fichier PKCS#12. Incluez également le certificat de l’autorité de certification qui a signé le certificat du rendu :
openssl pkcs12 -export -in rendercert.pem -inkey renderkey.pem -certfile demoCA/cacert.pem -out rendercert.p12
Saisissez la commande suivante pour convertir le fichier PKCS#12 au format Java KeyStore (JKS) :
keytool -importkeystore -srckeystore servercert.p12 -srcstoretype pkcs12 -destkeystore render.keystore
Le fichier Java Keystore est créé à l’aide d’un alias par défaut. Modifiez l’alias, le cas échéant :
keytool -changealias -alias 1 -destalias jettyhttp -keystore render.keystore
Si vous agissez comme autorité de certification, importez le certificat dans un magasin de clés. Ensuite, configurez la machine virtuelle Java exécutant l’instance de rendu pour approuver le magasin de clés.
Utilisez un éditeur de texte pour ouvrir le fichier cacert.pem et supprimer l’intégralité du texte qui précède la ligne suivante :
-----BEGIN CERTIFICATE-----
Utilisez la commande suivante pour importer le certificat dans un magasin de clés :
keytool -import -keystore cacerts.keystore -alias myca -storepass password -file cacert.pem
Pour configurer la machine virtuelle Java qui exécute l’instance de rendu de sorte qu’elle approuve le magasin de clés, utilisez la propriété système suivante :
-Djavax.net.ssl.trustStore=<location of cacerts.keystore>
Par exemple, si vous utilisez le script crx-quickstart/bin/quickstart pour démarrer l’instance de publication, vous pouvez modifier la propriété CQ_JVM_OPTS :
CQ_JVM_OPTS='-server -Xmx2048m -XX:MaxPermSize=512M -Djavax.net.ssl.trustStore=/usr/lib/cq6.0/publish/ssl/cacerts.keystore'
Utilisez le certificat de rendu avec les instructions de la section Activation du protocole SSL sur l’instance Publish pour configurer le service HTTP de l’instance de rendu de sorte qu’il utilise le protocole SSL :
Pour configurer Dispatcher de sorte qu’il utilise le protocole SSL mutuel, préparez le certificat de Dispatcher, puis configurez le module de serveur web.
Combinez le certificat de Dispatcher et la clé privée non chiffrée dans un seul fichier PEM. Utilisez un éditeur de texte ou la commande cat
pour créer un fichier semblable à l’exemple suivant :
Ouvrez un terminal et définissez le répertoire actuel sur l’emplacement du fichier dispkey.pem.
Pour déchiffrer la clé privée, saisissez la commande suivante :
openssl rsa -in dispkey.pem -out dispkey_unencrypted.pem
Utilisez un éditeur de texte ou la commande cat
pour combiner la clé privée non chiffrée avec le certificat dans un fichier unique semblable à l’exemple suivant :
-----BEGIN RSA PRIVATE KEY-----
MIICxjBABgkqhkiG9w0B...
...M2HWhDn5ywJsX
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIIC3TCCAk...
...roZAs=
-----END CERTIFICATE-----
Ajoutez les propriétés suivantes à la configuration du module de Dispatcher (dans httpd.conf
):
DispatcherCertificateFile
: chemin d’accès au fichier de certificat unifié de Dispatcher, contenant le certificat public et la clé privée non chiffrée. Ce fichier est utilisé lorsque le serveur SSL demande le certificat client de Dispatcher.DispatcherCACertificateFile
: chemin d’accès au fichier de certificat de l’autorité de certification, utilisé si le serveur SSL présente une autorité de certification qui n’est pas approuvée par une autorité racine.DispatcherCheckPeerCN
: spécification de l’activation (On
) ou de la désactivation (Off
) de la vérification des noms d’hôte pour les certificats du serveur distant.Le code suivant est un exemple de configuration :
<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>