Configurez AEM de sorte qu’un agent de réplication sur les instances d’auteur utilise le SSL mutuel (MSSL) pour se connecter à l’instance de publication. En utilisant le MSSL, l’agent de réplication et le service HTTP sur l’instance de publication utilisent des certificats pour s’authentifier.
La configuration du MSSL pour la réplication implique la rélalisation des étapes suivantes :
Créez ou obtenez des clés privées et des certificats pour les instances d’auteur et de publication.
Installez les clés et les certificats sur les instances d’auteur et de publication :
Configurez le service HTTP basé sur Jetty sur l’instance de publication.
Configurez le transport et les propriétés SSL de l’agent de réplication.
Vous devez déterminer quel compte d’utilisateur exécute la réplication. Lors de la configuration du certificat d’auteur sur l’instance de publication, le certificat est associé à ce compte d’utilisateur.
Vous avez besoin d’une clé privée et d’un certificat public pour les instances d’auteur et de publication :
Générez une clé privée et un certificat au format JKS. La clé privée est stockée dans un fichier KeyStore, et le certificat est stocké dans un fichier TrustStore. Utilisez l’utilitaire Java keytool
pour les créer.
Effectuez les étapes suivantes en utilisant l’utilitaire Java keytool
pour créer la clé privée et les informations d’identification :
Générez une paire de clés publiques/privées dans un Keystore.
Créez ou obtenez le certificat :
Importez le certificat dans un TrustStore.
Utilisez la procédure suivante pour créer une clé privée et un certificat autosigné pour les instances d’auteur et de publication. Utilisez des valeurs différentes pour les options de commande en conséquence.
Ouvrez une fenêtre ou un terminal de ligne de commande. Pour créer la paire de clés publiques/privées, saisissez la commande suivante, à l’aide des valeurs d’option dans le tableau ci-dessous :
keytool -genkeypair -keyalg RSA -validity 3650 -alias alias -keystore keystorename.keystore -keypass key_password -storepass store_password -dname "CN=Host Name, OU=Group Name, O=Company Name,L=City Name, S=State, C=Country_ Code"
Option | Création | Publication |
---|---|---|
-alias | auteur | publish |
-keystore | author.keystore | publish.keystore |
Pour exporter le certificat, saisissez la commande suivante à l’aide des valeurs d’option dans le tableau ci-dessous :
keytool -exportcert -alias alias -file cert_file -storetype jks -keystore keystore -storepass store_password
Option | Création | Publication |
---|---|---|
-alias | auteur | publish |
-file | author.cer | publish.cer |
-keystore | author.keystore | publish.keystore |
Générez une clé privée et un certificat au format pkcs#12. Utilisez openSSL pour les générer. Utilisez la procédure suivante pour générer une clé privée et une demande de certificat. Pour obtenir le certificat, signez la requête avec votre clé privée (certificat autosigné) ou envoyez la requête à une autorité de certification. Générez ensuite une archive pkcs#12 contenant la clé privée et le certificat.
Ouvrez une fenêtre ou un terminal de ligne de commande. Pour créer la clé privée, saisissez la commande suivante à l’aide des valeurs d’option du tableau ci-dessous :
openssl genrsa -out keyname.key 2048
Option | Création | Publication |
---|---|---|
-out | author.key | publish.key |
Pour générer une demande de certificat, saisissez la commande suivante à l’aide des valeurs d’option du tableau ci-dessous :
openssl req -new -key keyname.key -out key_request.csr
Option | Création | Publication |
---|---|---|
-key | author.key | publish.key |
-out | author_request.csr | publish_request.csr |
Signez la demande de certificat ou envoyez-la à une autorité de certification.
Pour signer la demande de certificat, saisissez la commande suivante à l’aide des valeurs d’option du tableau ci-dessous :
openssl x509 -req -days 3650 -in key_request.csr -signkey keyname.key -out certificate.cer
Option | Création | Publication |
---|---|---|
-signkey | author.key | publish.key |
-in | author_request.csr | publish_request.csr |
-out | author.cer | publish.cer |
Pour ajouter la clé privée et le certificat signé à un fichier pkcs#12, saisissez la commande suivante à l’aide des valeurs d’option du tableau ci-dessous :
openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in certificate.cer -inkey keyname.key -out pkcs12_archive.pfx -name "alias"
Option | Création | Publication |
---|---|---|
-inkey | author.key | publish.key |
-out | author.pfx | publish.pfx |
-in | author.cer | publish.cer |
-name | auteur | publish |
Installez les éléments suivants sur l’instance d’auteur :
Pour exécuter la procédure ci-après, vous devez être connecté en tant qu’administrateur de l’instance d’auteur.
Ouvrez la page de gestion des utilisateurs pour l’instance d’auteur. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Pour ouvrir les propriétés de votre compte utilisateur, appuyez ou cliquez sur votre nom d’utilisateur.
Si le lien Créer le TrustStore apparaît dans la zone Paramètres de compte, cliquez dessus. Configurez un mot de passe, puis cliquez sur OK.
Dans la zone Paramètres du compte, cliquez sur Gérer le KeyStore.
Cliquez sur Ajouter la clé privée à partir du fichier de magasin de clés.
Cliquez sur Sélectionner le fichier du magasin de clés, puis recherchez et sélectionnez le fichier author.keystore ou author.pfx si vous utilisez pkcs#12, puis cliquez sur Ouvrir.
Saisissez le nom de l’alias et le mot de passe du magasin de clés. Saisissez le nom de l’alias et le mot de passe de la clé privée, puis cliquez sur Envoyer.
Fermez la boîte de dialogue Gestion du Keystore.
Ouvrez la page de gestion des utilisateurs pour l’instance d’auteur. (http://localhost:4502/libs/granite/security/content/useradmin.html)
Pour ouvrir les propriétés de votre compte utilisateur, appuyez ou cliquez sur votre nom d’utilisateur.
Si le lien Créer le TrustStore apparaît dans la zone Paramètres de compte, cliquez dessus, créez un mot de passe pour TrustSore, puis cliquez sur OK.
Dans la zone Paramètres de compte, cliquez sur Gérer le TrustStore.
Cliquez sur Ajouter le certificat à partir du fichier CER.
Effacez l’option Associer le certificat à l’utilisateur. Cliquez sur Sélectionner le fichier de certificat, sélectionnez publish.cer, puis cliquez sur Ouvrir.
Fermez la boîte de dialogue Gestion du Trust Store.
Installez les éléments suivants sur l’instance de publication :
Pour exécuter la procédure suivante, vous devez être connecté en tant qu’administrateur de l’intance de publication.
Configurez les propriétés du service HTTP basé sur Apache Felix Jetty sur l’instance de publication de sorte qu’il utilise HTTPS lors de l’accès à Granite Keystore. Le PID du service est org.apache.felix.http
.
Le tableau suivant répertorie les propriétés OSGi que vous devez configurer si vous utilisez la console web.
Nom de propriété dans la console web | Nom de propriété OSGi | Valeur |
---|---|---|
Activer le HTTPS | org.apache.felix.https.enable | true |
Activer le HTTPS pour utiliser le KeyStore Granite | org.apache.felix.https.use.granite.keystore | true |
Port HTTPS | org.osgi.service.http.port.secure | 8443 (ou tout autre port souhaité) |
Certificat client | org.apache.felix.https.clientcertificate | « Certificat client recherché » |
Configurez l’agent de réplication sur l’instance d’auteur pour utiliser le protocole HTTPS lors de la connexion à l’instance de publication. Pour obtenir des informations complètes sur la configuration des agents de réplication, reportez-vous à la rubrique Configuration de vos agents de réplication.
Pour activer MSSL, configurez les propriétés sur l’onglet Transport en fonction du tableau suivant :
Propriété | Valeur |
---|---|
URI | https://server_name:SSL_port/bin/receive?sling:authRequestLogin=1 Par exemple : http://localhost:8443/bin/receive?sling:authRequestLogin=1 |
User | Aucune valeur |
Mot de passe | Aucune valeur |
SSL | Authentification du client |
Une fois que vous avez configuré l’agent de réplication, testez la connexion pour déterminer si MSSL est configuré correctement.
29.08.2014 14:02:46 - Create new HttpClient for Default Agent
29.08.2014 14:02:46 - * HTTP Version: 1.1
29.08.2014 14:02:46 - * Using Client Auth SSL configuration *
29.08.2014 14:02:46 - adding header: Action:Test
29.08.2014 14:02:46 - adding header: Path:/content
29.08.2014 14:02:46 - adding header: Handle:/content
29.08.2014 14:02:46 - deserialize content for delivery
29.08.2014 14:02:46 - No message body: Content ReplicationContent.VOID is empty
29.08.2014 14:02:46 - Sending POST request to http://localhost:8443/bin/receive?sling:authRequestLogin=1
29.08.2014 14:02:46 - sent. Response: 200 OK
29.08.2014 14:02:46 - ------------------------------------------------
29.08.2014 14:02:46 - Sending message to localhost:8443
29.08.2014 14:02:46 - >> POST /bin/receive HTTP/1.0
29.08.2014 14:02:46 - >> Action: Test
29.08.2014 14:02:46 - >> Path: /content
29.08.2014 14:02:46 - >> Handle: /content
29.08.2014 14:02:46 - >> Referer: about:blank
29.08.2014 14:02:46 - >> Content-Length: 0
29.08.2014 14:02:46 - >> Content-Type: application/octet-stream
29.08.2014 14:02:46 - --
29.08.2014 14:02:46 - << HTTP/1.1 200 OK
29.08.2014 14:02:46 - << Connection: Keep-Alive
29.08.2014 14:02:46 - << Server: Day-Servlet-Engine/4.1.64
29.08.2014 14:02:46 - << Content-Type: text/plain;charset=utf-8
29.08.2014 14:02:46 - << Content-Length: 26
29.08.2014 14:02:46 - << Date: Fri, 29 Aug 2014 18:02:46 GMT
29.08.2014 14:02:46 - << Set-Cookie: login-token=3529326c-1500-4888-a4a3-93d299726f28%3ac8be86c6-04bb-4d18-80d6-91278e08d720_98797d969258a669%3acrx.default; Path=/; HttpOnly; Secure
29.08.2014 14:02:46 - << Set-Cookie: cq-authoring-mode=CLASSIC; Path=/; Secure
29.08.2014 14:02:46 - <<
29.08.2014 14:02:46 - << R
29.08.2014 14:02:46 - << eplicationAction TEST ok.
29.08.2014 14:02:46 - Message sent.
29.08.2014 14:02:46 - ------------------------------------------------
29.08.2014 14:02:46 - Replication (TEST) of /content successful.
Replication test succeeded