SSL/TLS som standard ssl-tls-by-default
I ett försök att kontinuerligt förbättra säkerheten i AEM har Adobe introducerat funktionen SSL som standard. Syftet är att uppmuntra användningen av HTTPS för att ansluta till AEM-instanser.
Aktivera SSL/TLS som standard enabling-ssl-tls-by-default
Du kan börja konfigurera SSL/TLS som standard genom att klicka på det relevanta inkorgsmeddelandet på startskärmen i AEM. Om du vill nå Inkorgen trycker du på klockikonen i skärmens övre högra hörn. Klicka sedan på Visa alla. Då visas en lista med alla aviseringar som har beställts i en listvy.
Markera och öppna aviseringen Konfigurera HTTPS i listan:
En tjänstanvändare med namnet ssl-service har skapats för den här funktionen. När du har öppnat aviseringen vägleds du genom följande konfigurationsguide:
-
Konfigurera först arkivautentiseringsuppgifterna. Detta är autentiseringsuppgifterna för systemanvändarens nyckelarkiv ssl-service som innehåller den privata nyckeln och förtroendearkivet för HTTPS-avlyssnaren.
-
När du har angett inloggningsuppgifterna klickar du på Nästa i det övre högra hörnet på sidan. Ladda sedan upp den associerade privata nyckeln och certifikatet för SSL/TLS-anslutningen.
note note NOTE Mer information om hur du skapar en privat nyckel och ett certifikat som ska användas med guiden finns i den här proceduren nedan. -
Slutligen anger du HTTPS-värdnamnet och TCP-porten för HTTPS-avlyssnaren.
Automatisera SSL/TLS som standard automating-ssl-tls-by-default
Det finns tre sätt att automatisera SSL/TLS som standard.
Via HTTP POST via-http-post
Den första metoden innebär publicering till SSLSetup-servern som används av konfigurationsguiden:
POST /libs/granite/security/post/sslSetup.html
Du kan använda följande nyttolast i POST för att automatisera konfigurationen:
------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
Servern, precis som alla sling POST-servrar, svarar med 200 OK eller en felkod för HTTP-status. Information om status finns i svarsdelen i HTML.
Nedan finns exempel på både ett lyckat svar och ett fel.
EXEMPEL PÅ SLUTFÖRT (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.
Take note of the key store password you provided. You 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>
FELEXEMPEL (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 paket via-package
Du kan också automatisera SSL-/TLS-konfigurationen genom att överföra ett paket som redan innehåller följande obligatoriska objekt:
- SSL-service-användarens nyckelbehållare. Detta finns under /home/users/system/security/ssl-service/keystore i databasen.
- Konfigurationen
GraniteSslConnectorFactory
Skapa en privat nyckel/ett certifikatpar som ska användas med guiden generating-a-private-key-certificate-pair-to-use-with-the-wizard
Här nedan hittar du ett exempel på hur du skapar ett självsignerat certifikat i DER-format som kan användas i SSL-/TLS-guiden. Installera OpenSSL baserat på operativsystemet, öppna kommandotolken för OpenSSL och ändra katalogen till den mapp där du vill generera den privata nyckeln/certifikatet.
-
Skapa först den privata nyckeln:
code language-shell openssl genrsa -aes256 -out localhostprivate.key 4096 openssl rsa -in localhostprivate.key -out localhostprivate.key
-
Generera sedan en CSR-begäran (Certificate Signing Request) med hjälp av en privat nyckel:
code language-shell openssl req -sha256 -new -key localhostprivate.key -out localhost.csr -subj "/CN=localhost"
-
Generera SSL-/TLS-certifikatet och signera det med den privata nyckeln. I det här exemplet upphör att gälla ett år från och med nu:
code language-shell openssl x509 -req -days 365 -in localhost.csr -signkey localhostprivate.key -out localhost.crt
-
Konvertera den privata nyckeln till DER-format. Detta beror på att SSL-guiden kräver att nyckeln är i DER-format:
code language-shell openssl pkcs8 -topk8 -inform PEM -outform DER -in localhostprivate.key -out localhostprivate.der -nocrypt
-
Ladda slutligen upp localhostprivate.der som privat nyckel och localhost.crt som SSL/TLS-certifikat i steg 2 i den grafiska SSL-/TLS-guiden som beskrivs i början av den här sidan.
Uppdatera SSL-/TLS-konfigurationen via cURL updating-the-ssl-tls-configuration-via-curl
Du kan också automatisera SSL-/TLS-konfigurationen med verktyget cURL. Du kan göra detta genom att skicka konfigurationsparametrarna till den här URL
https://<serveradress>:<serverport>/libs/granite/security/post/sslSetup.html
Nedan visas parametrarna som du kan använda för att ändra de olika inställningarna i konfigurationsguiden:
-
-F "keystorePassword=password"
- lösenordet för nyckelbehållaren; -
-F "keystorePasswordConfirm=password"
- bekräfta lösenordet för nyckelbehållaren; -
-F "truststorePassword=password"
- lösenordet för förvaltararkivet; -
-F "truststorePasswordConfirm=password"
- bekräfta lösenordet för förtroendearkivet; -
-F "privatekeyFile=@localhostprivate.der"
- ange den privata nyckeln; -
-F "certificateFile=@localhost.crt"
- ange certifikatet; -
-F "httpsHostname=host.example.com"
- ange värdnamnet; -
-F "httpsPort=8443"
- den port som HTTPS-avlyssnaren ska arbeta med.
privatekeyFile
och certificateFile.-u user:passeword
.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
Flera certifikat med cURL multiple-certificates-using-curl
Du kan skicka en certifikatkedja till servern genom att upprepa parametern certificateFile så här:
-F "certificateFile=@root.crt" -F "certificateFile=@localhost.crt"..
När du har kört kommandot kontrollerar du att alla certifikat har gjort det till nyckelbehållaren. Kontrollera Keystore-posterna från:
http://localhost:4502/libs/granite/security/content/v2/usereditor.html/home/users/system/security/ssl-service
Aktivera en TLS 1.3-anslutning enabling-tls-connection
-
Gå till webbkonsolen
-
Gå sedan till OSGi - Konfiguration - Adobe Granite SSL Connector Factory
-
Gå till fältet Inkluderade chiffersviter och lägg till följande poster. Du kan bekräfta varje tillägg genom att trycka på knappen + till vänster om fältet, efter att du lagt till varje tillägg i:
TLS_AES_256_GCM_SHA384
TLS_AES_128_GCM_SHA256
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_CCM_SHA256
TLS_AES_128_CCM_8_SHA256