SSL som standard ssl-by-default
I ett försök att kontinuerligt förbättra AEM säkerhet har Adobe introducerat en funktion som kallas SSL som standard. Syftet är att uppmuntra användningen av HTTPS för att ansluta till AEM instanser.
Aktivera SSL som standard enabling-ssl-by-default
Du kan börja konfigurera SSL som standard genom att klicka på det relevanta inkorgsmeddelandet från AEM startskärm. Tryck på klockikonen i skärmens övre högra hörn för att nå Inkorgen. Klicka sedan på Visa alla. Då visas en lista med alla aviseringar som har beställts i en listvy.
Markera och öppna Konfigurera HTTPS varning:
[OBS!]
Om Konfigurera HTTPS ingen varning finns i Inkorgen. Du kan navigera direkt till HTTPS-guiden genom att gå till http://serveraddress:serverport/libs/granite/security/content/sslConfig.html?item=configuration%2Fconfiguressl&_charset_=utf-8
En tjänstanvändare ringde 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 ssl-service systemanvändarens nyckelarkiv som kommer att innehålla 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-anslutningen.
note note NOTE Mer information om hur du skapar en privat nyckel och ett certifikat som ska användas med guiden finns i detta förfarande nedan. -
Slutligen anger du HTTPS-värdnamnet och TCP-porten för HTTPS-avlyssnaren.
Automatiserar SSL som standard automating-ssl-by-default
Det finns tre sätt att automatisera SSL 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 POSTEN 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 kommer, precis som vilken server som helst för POST av sling, att svara med 200 OK eller en felkod för HTTP-status. Du hittar information om status i svarets HTML.
Nedan finns exempel på både ett lyckat svar och ett fel.
EXEMPEL (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>
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-konfigurationen genom att överföra ett paket som redan innehåller följande obligatoriska objekt:
- SSL-service-användarens nyckelbehållare. Det här finns under /home/users/system/security/ssl-service/keystore i databasen.
- The
GraniteSslConnectorFactory
konfiguration
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-guiden.
-
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-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:
openssl pkcs8 -topk8 -inform PEM -outform DER -in localhostprivate.key -out localhostprivate.der -nocrypt
Till sist skickar du localhostprivate.der som den privata nyckeln och localhost.crt som SSL-certifikat i steg 2 i den grafiska SSL-guiden som beskrivs i början av den här sidan.
Uppdatera SSL-konfigurationen via cURL updating-the-ssl-configuration-via-curl
Du kan också automatisera SSL-konfigurationen med verktyget cURL. Du kan göra detta genom att skicka konfigurationsparametrarna till den här URL
https://<serveraddress>:<serverport>/libs/granite/security/post/sslSetup.html
Nedan visas de parametrar du kan använda för att ändra de olika inställningarna i konfigurationsguiden:
-
-F "keystorePassword=password"
- Nyckellagringslösenordet. -
-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-argument.-u user:passeword
parameter.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 nyckelbehållaren från:
http://localhost:4502/libs/granite/security/content/userEditor.html/home/users/system/security/ssl-service