Standaard SSL ssl-by-default

CAUTION
AEM 6.4 heeft het einde van de uitgebreide ondersteuning bereikt en deze documentatie wordt niet meer bijgewerkt. Raadpleeg voor meer informatie onze technische ondersteuningsperioden. Ondersteunde versies zoeken hier.

In een poging om de veiligheid van AEM voortdurend te verbeteren, heeft Adobe een eigenschap genoemd SSL Door Standaard geïntroduceerd. Het doel is het gebruik van HTTPS aan te moedigen om verbinding te maken met AEM instanties.

SSL standaard inschakelen enabling-ssl-by-default

U kunt SSL door Standaard te vormen door het relevante Inbox bericht van uw AEM homescherm te klikken. Druk op het belpictogram in de rechterbovenhoek van het scherm om het vak Inbox te bereiken. Klik vervolgens op Alles weergeven. Hiermee wordt een lijst weergegeven met alle waarschuwingen die in een lijstweergave zijn besteld.

Selecteer in de lijst de optie HTTPS configureren waarschuwing:

chlimage_1-341

[OPMERKING!]

Als de HTTPS configureren waakzaamheid is niet aanwezig in Inbox, u kunt rechtstreeks aan de Tovenaar navigeren HTTPS door te gaan http://serveraddress:serverport/libs/granite/security/content/sslConfig.html?item=configuration%2Fconfiguressl&_charset_=utf-8

Een servicegebruiker die ssl-service is gemaakt voor deze functie. Zodra u het alarm opent, zult u door de volgende configuratietovenaar worden geleid:

  1. Stel eerst de gegevens voor de winkelreferenties in. Dit zijn de referenties voor de ssl-service sleutelarchief van de systeemgebruiker dat de persoonlijke sleutel en vertrouwde opslag voor de luisteraar HTTPS zal bevatten.

    chlimage_1-342

  2. Nadat u de referenties hebt ingevoerd, klikt u op Volgende in de rechterbovenhoek van de pagina. Upload vervolgens de bijbehorende persoonlijke sleutel en het bijbehorende certificaat voor de SSL-verbinding.

    chlimage_1-343

    note note
    NOTE
    Ga voor informatie over het genereren van een persoonlijke sleutel en een certificaat voor gebruik met de wizard naar deze procedure hieronder.
  3. Geef ten slotte de hostnaam HTTPS en de TCP-poort voor de HTTPS-listener op.

    screen_shot_2018-07-25at31658pm

SSL standaard automatiseren automating-ssl-by-default

Er zijn drie manieren om SSL standaard te automatiseren.

Via HTTP-POST via-http-post

De eerste methode impliceert het posten aan de server SSLSetup die door de configuratietovenaar wordt gebruikt:

POST /libs/granite/security/post/sslSetup.html

U kunt de volgende nuttige lading in uw POST gebruiken om configuratie te automatiseren:

------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="keystorePassword"

test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="keystorePasswordConfirm"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="truststorePassword"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="truststorePasswordConfirm"
test
------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="privatekeyFile"; filename="server.der"
Content-Type: application/x-x509-ca-cert

------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="certificateFile"; filename="server.crt"
Content-Type: application/x-x509-ca-cert

------WebKitFormBoundaryyBO4ArmGlcfdGDbs
Content-Disposition: form-data; name="httpsPort"
8443

De servlet zal, net als elke sling POST servlet, met 200 OK of een foutHTTP- statuscode antwoorden. U kunt meer informatie over de status vinden in de HTML-hoofdtekst van de reactie.

Hieronder staan voorbeelden voor zowel een geslaagde reactie als een fout.

SUCCESVOORBEELD (status = 200):

<!DOCTYPE html>
<html lang='en'>
<head>
<title>OK</title>
</head>
<body>
<h1>OK</h1>
<dl>
<dt class='foundation-form-response-status-code'>Status</dt>
<dd>200</dd>
<dt class='foundation-form-response-status-message'>Message</dt>
<dd>SSL successfully configured</dd>
<dt class='foundation-form-response-title'>Title</dt>
<dd>OK</dd>
<dt class='foundation-form-response-description'>Description</dt>
<dd>HTTPS has been configured on port 8443. The private key and
certificate were stored in the key store of the user ssl-service.
Please take note of the key store password you provided. You will need
it for any subsequent updating of the private key or certificate.</dd>
</dl>
<h2>Links</h2>
<ul class='foundation-form-response-links'>
<li><a class='foundation-form-response-redirect' href='/'>Done</a></li>
</ul>
</body>
</html>

FOUTVOORBEELD (status = 500):

<!DOCTYPE html>
<html lang='en'>
<head>
<title>Error</title>
</head>
<body>
<h1>Error</h1>
<dl>
<dt class='foundation-form-response-status-code'>Status</dt>
<dd>500</dd>
<dt class='foundation-form-response-status-message'>Message</dt>
<dd>The provided file is not a valid key, DER format expected</dd>
<dt class='foundation-form-response-title'>Title</dt>
<dd>Error</dd>
</dl>
</body>
</html>

Via pakket via-package

U kunt de SSL-installatie ook automatiseren door een pakket te uploaden dat al de volgende vereiste items bevat:

  • Het sleutelarchief van de ssl-dienst gebruiker. Deze bevindt zich onder /home/users/system/security/ssl-service/keystore in de repository.
  • De GraniteSslConnectorFactory configuratie

Een privésleutel/certificaatpaar genereren voor gebruik met de wizard generating-a-private-key-certificate-pair-to-use-with-the-wizard

Hieronder ziet u een voorbeeld voor het maken van een zelfondertekend certificaat in de indeling DER die de SSL-wizard kan gebruiken.

NOTE
Het gebruik van een zelfondertekend certificaat is bijvoorbeeld alleen bedoeld en mag niet worden gebruikt bij de productie.
  1. Maak eerst de persoonlijke sleutel:

    code language-shell
    openssl genrsa -aes256 -out localhostprivate.key 4096
    openssl rsa -in localhostprivate.key -out localhostprivate.key
    
  2. Genereer vervolgens een CSR (Certificate Signing Request) met behulp van de persoonlijke sleutel:

    code language-shell
    openssl req -sha256 -new -key localhostprivate.key -out localhost.csr -subj '/CN=localhost'
    
  3. Genereer het SSL-certificaat en onderteken het met de persoonlijke sleutel. In dit voorbeeld verloopt de bewerking over een jaar:

    code language-shell
    openssl x509 -req -days 365 -in localhost.csr -signkey localhostprivate.key -out localhost.crt
    

Zet de Persoonlijke Sleutel in het formaat van DER om. De reden hiervoor is dat de SSL-wizard vereist dat de sleutel de indeling DER heeft:

openssl pkcs8 -topk8 -inform PEM -outform DER -in localhostprivate.key -out localhostprivate.der -nocrypt

Ten slotte uploadt u de localhostprivate.der als persoonlijke sleutel en localhost.crt als het SSL-certificaat in stap 2 van de grafische SSL-wizard die aan het begin van deze pagina wordt beschreven.

De SSL-configuratie bijwerken via cURL updating-the-ssl-configuration-via-curl

NOTE
Zie cURL gebruiken met AEM voor een gecentraliseerde lijst van nuttige cURL bevelen in AEM.

U kunt de SSL-configuratie ook automatiseren met het gereedschap cURL. U kunt dit doen door de configuratieparameters aan dit URL te posten:

https://<serveraddress>:<serverport>/libs/granite/security/post/sslSetup.html

Hieronder ziet u de parameters die u kunt gebruiken om de verschillende instellingen in de configuratietovenaar te wijzigen:

  • -F "keystorePassword=password" - het sleutelarchiefwachtwoord;

  • -F "keystorePasswordConfirm=password" - het keystore-wachtwoord bevestigen;

  • -F "truststorePassword=password" - het truststore-wachtwoord;

  • -F "truststorePasswordConfirm=password" - het truststore-wachtwoord bevestigen;

  • -F "privatekeyFile=@localhostprivate.der" - de persoonlijke sleutel specificeren;

  • -F "certificateFile=@localhost.crt" - het certificaat vermelden;

  • -F "httpsHostname=host.example.com"- de hostnaam te specificeren;

  • -F "httpsPort=8443" - de poort waaraan de HTTPS-listener werkt.

NOTE
De snelste manier om cURL uit te voeren om de SSL configuratie te automatiseren is van de omslag waar de DER en CRT dossiers zijn. U kunt ook het volledige pad opgeven in het dialoogvenster privatekeyFile en certificateFile-argumenten.
U moet ook worden geverifieerd om de update uit te voeren, dus zorg ervoor dat u de opdracht cURL toevoegt aan de opdracht -u user:passeword parameter.
Een correcte post cURL zou als dit moeten kijken:
curl -u user:password -F "keystorePassword=password" -F "keystorePasswordConfirm=password" -F "truststorePassword=password" -F "truststorePasswordConfirm=password" -F "privatekeyFile=@localhostprivate.der" -F "certificateFile=@localhost.crt" -F "httpsHostname=host.example.com" -F "httpsPort=8443" https://host:port/libs/granite/security/post/sslSetup.html

Meerdere certificaten met cURL multiple-certificates-using-curl

U kunt de server een certificaatketen sturen door de parameter certificateFile als volgt te herhalen:

-F "certificateFile=@root.crt" -F "certificateFile=@localhost.crt"..

Zodra u het bevel hebt uitgevoerd, verifieer dat alle certificaten het aan keystore maakten. Controleer het sleutelarchief van:
http://localhost:4502/libs/granite/security/content/userEditor.html/home/users/system/security/ssl-service

recommendation-more-help
5ce3024a-cbea-458b-8b2f-f9b8dda516e8