În acest tutorial, veți învăța cum să instalați un certificat SSL în AWS (Amazon Web Services). Pe AWS nu instalați un certificat pe un singur server, așa cum ați face cu Apache sau Nginx. În schimb, importați certificatul o singură dată într-un depozit de certificate, apoi îl atașați unui serviciu gestionat (un load balancer, CloudFront sau API Gateway) care încheie conexiunea TLS pentru dvs. Acest ghid acoperă AWS Certificate Manager (ACM), depozitul de certificate IAM (mai vechi) și Elastic Load Balancing (ELB).
Înainte de instalare, trebuie să generați o Cerere de Semnare a Certificatului (CSR) și să o trimiteți Autorității de Certificare pentru aprobare. Dacă nu ați finalizat acest pas, începeți cu prima parte a acestui tutorial. Dacă aveți deja fișierele certificatului SSL, treceți direct la ghidul de instalare de mai jos.
Cum se generează un cod CSR în AWS
Când solicitați un certificat SSL, un pas esențial este trimiterea codului CSR către furnizorul dvs. SSL, numit și Autoritate de Certificare. CSR-ul conține informații codificate despre numele de domeniu și organizația dvs. Nu puteți obține un certificat SSL semnat fără a furniza acest bloc de cod. Aveți două opțiuni:
- Utilizați Generatorul nostru de CSR pentru a crea CSR-ul automat.
- Generați CSR-ul manual. Cea mai bună opțiune este să creați CSR-ul pe același server pe care va rula certificatul dvs. SSL. Alegeți tutorialul pentru platforma dvs.:
Dacă aveți doar un load balancer și niciun server web de origine pe care să rulați comanda, puteți crea CSR-ul și cheia privată cu instrumentul OpenSSL:
openssl req -new -newkey rsa:2048 -nodes -keyout yoursite.key -out example.csr
Notă: înlocuiți yoursite cu numele de domeniu pe care doriți să-l securizați. Această comandă scrie și cheia dvs. privată (yoursite.key); păstrați-o în siguranță, deoarece veți avea nevoie de ea mai târziu pentru a importa certificatul.
După ce rulați comanda, OpenSSL scrie CSR-ul în example.csr. Deschideți acel fișier și copiați tot blocul, inclusiv liniile ––BEGIN CERTIFICATE REQUEST–– și ––END CERTIFICATE REQUEST––. Veți lipi acest cod în timpul activării certificatului dvs. SSL.
Pregătiți toate fișierele certificatului
Înainte de a începe instalarea, asigurați-vă că aveți toate fișierele necesare ale certificatului. După ce Autoritatea de Certificare semnează certificatul dvs. SSL, trimite fișierele de instalare pe adresa dvs. de e-mail. Iată de ce aveți nevoie:
- Fișierul certificatului principal, emis pentru numele de domeniu pe care doriți să-l securizați.
- Pachetul CA (lanțul de certificate intermediare) de la Autoritatea dvs. de Certificare.
- Cheia dvs. privată.
Certificatul dvs. SSL și pachetul CA sosesc în arhiva ZIP trimisă de CA. Cheia privată este cea pe care ați generat-o împreună cu codul dvs. CSR; aceasta rămâne în același loc unde ați creat CSR-ul.
Un ultim lucru de verificat este formatul fișierelor dvs. ACM și IAM acceptă doar fișiere codificate PEM, așa că asigurați-vă că certificatul, lanțul și cheia privată sunt în format PEM. PEM este un format text care poate avea mai multe extensii de fișier (.pem, .key, .cer, .crt și altele); un fișier PEM începe cu o linie precum ––BEGIN CERTIFICATE––. Cheia privată trebuie să fie necriptată: ACM respinge o cheie protejată de o parolă sau frază de acces.
Dacă ați primit fișierele într-un alt format, cum ar fi PFX/PKCS#12, convertiți-le mai întâi în PEM. Puteți face acest lucru cu comenzi OpenSSL. Odată ce fișierele dvs. sunt în format PEM, sunteți pregătit să instalați certificatul.
Instalați un certificat SSL în AWS Certificate Manager (ACM)
ACM este locul recomandat pentru stocarea certificatelor pentru serviciile gestionate AWS. Puteți importa certificatul dvs. de la terți prin consolă sau prin CLI.
Opțiunea A: Import în consola ACM
- Deschideți consola AWS și accesați Certificate Manager. Confirmați că sunteți în regiunea corectă (colțul din dreapta sus). Importați certificatul în aceeași regiune ca serviciul care îl va folosi. Pentru CloudFront, folosiți US East (N. Virginia), us-east-1.
- Alegeți Import certificate.
- În Certificate body, lipiți certificatul dvs. principal (blocul care începe cu ––BEGIN CERTIFICATE––).
- În Certificate private key, lipiți cheia dvs. privată necriptată (blocul care începe cu ––BEGIN PRIVATE KEY–– sau ––BEGIN RSA PRIVATE KEY––).
- În Certificate chain, lipiți pachetul dvs. CA (certificatele intermediare).
- Alegeți Next, adăugați etichete dacă doriți, apoi alegeți Import.
Opțiunea B: Import cu AWS CLI
Rulați comanda de mai jos pentru a încărca certificatul dvs. în ACM. Rețineți prefixul fileb://: acesta îi spune CLI-ului să citească fiecare fișier ca octeți bruți, ceea ce se așteaptă din partea ACM.
aws acm import-certificate
--certificate fileb://example.crt
--private-key fileb://example.key
--certificate-chain fileb://example-bundle.crt
Notă: înlocuiți fiecare nume de fișier example cu numele real al fișierului dvs. Dacă importul reușește, CLI-ul returnează ARN-ul (Amazon Resource Name) certificatului. Aveți nevoie de acest identificator pentru a atașa certificatul unui serviciu. Iată lista completă a comenzilor ACM pentru a gestiona în continuare certificatul dvs.
Avertismente importante:
- Certificatele importate nu se reînnoiesc automat. ACM reînnoiește automat doar certificatele pe care le emite. Sunteți responsabil pentru urmărirea datei de expirare a unui certificat importat și pentru reimportarea unuia nou înainte de expirare (AWS recomandă cu cel puțin 24 de ore înainte de expirare). Reimportarea în același certificat ACM păstrează asocierile de servicii existente, astfel încât load balancer-ul sau distribuția continuă să îl folosească fără modificări suplimentare.
- Regiunea contează. Un certificat ACM este regional. Importați-l în aceeași regiune ca load balancer-ul sau serviciul care îl va folosi. CloudFront acceptă doar certificate din us-east-1.
Instalați un certificat SSL în AWS IAM (metodă mai veche)
Depozitul de certificate IAM este metoda mai veche, iar AWS recomandă ACM pentru implementările noi. Folosiți IAM doar atunci când un serviciu sau o regiune nu acceptă ACM, sau când aveți nevoie în mod specific de depozitul IAM (de exemplu, anumite configurații CloudFront, în care calea trebuie să înceapă cu /cloudfront/). Încărcați certificatul în IAM cu:
aws iam upload-server-certificate
--server-certificate-name certificate-name
--certificate-body file://example.crt
--certificate-chain file://example-bundle.crt
--private-key file://example.key
Înlocuiți valorile așa cum se arată mai jos:
- –server-certificate-name: un nume personalizat ușor de reținut, de exemplu numele dvs. de domeniu. Folosiți doar caractere alfanumerice majuscule și minuscule; spațiile nu sunt permise.
- –certificate-body: numele fișierului certificatului dvs. SSL principal.
- –certificate-chain: numele fișierului pachetului dvs. CA.
- –private-key: numele fișierului cheii dvs. private.
Certificatul, cheia privată și lanțul trebuie să fie toate codificate PEM, iar cheia privată trebuie să corespundă certificatului. Dacă încărcarea reușește, CLI-ul returnează metadatele certificatului de server, inclusiv calea, numele, ID-ul, ARN-ul, data încărcării și data de expirare. Pentru ajutor suplimentar privind gestionarea SSL și depanarea, consultați ghidul oficial Amazon.
Atașați certificatul în ELB (Elastic Load Balancing)
Importarea certificatului în ACM sau IAM nu îl activează încă. Certificatul devine activ doar atunci când atașați ARN-ul său unui serviciu. Această secțiune presupune că ați importat deja certificatul și doriți să creați sau să actualizați ascultători HTTPS pe un load balancer existent. Veți avea nevoie de ARN-ul certificatului dvs. și de numele sau ARN-ul load balancer-ului.
Classic Load Balancer
Folosiți comanda de mai jos pentru a crea un ascultător HTTPS pe un Classic Load Balancer și a-i atribui certificatul:
aws elb create-load-balancer-listeners
--load-balancer-name my-load-balancer
--listeners "Protocol=HTTPS,LoadBalancerPort=443,InstanceProtocol=HTTP,InstancePort=80,SSLCertificateId=ARN"
Înlocuiți ARN cu ARN-ul certificatului dvs. din ACM sau IAM. Dacă aveți deja un ascultător HTTPS și doriți doar să înlocuiți certificatul cu unul nou, folosiți:
aws elb set-load-balancer-listener-ssl-certificate
--load-balancer-name my-load-balancer
--load-balancer-port 443
--ssl-certificate-id NewARN
Înlocuiți NewARN cu ARN-ul noului certificat. Iată gama completă de comenzi ELB și ghidul oficial Amazon despre ascultătorii HTTPS pentru Classic Load Balancer.
Application Load Balancer
Rulați următoarea comandă pentru a crea un ascultător HTTPS pe un Application Load Balancer. Valoarea –ssl-policy de mai jos selectează o politică de securitate care acceptă TLS 1.3 și TLS 1.2:
aws elbv2 create-listener
--load-balancer-arn my-load-balancer-arn
--protocol HTTPS
--port 443
--certificates CertificateArn=my-certificate-arn
--ssl-policy ELBSecurityPolicy-TLS13-1-2-2021-06
--default-actions Type=forward,TargetGroupArn=my-target-group-arn
Puteți găsi valorile my-load-balancer-arn și my-target-group-arn rulând:
aws elbv2 describe-target-groups
Aceasta dezvăluie load balancer-ele și grupurile țintă relevante din contul dvs. Pentru a adăuga un certificat nou la un ascultător HTTPS existent, folosiți:
aws elbv2 modify-listener
--listener-arn my-https-listener-arn
--certificates CertificateArn=my-new-certificate-arn
Puteți găsi valoarea my-https-listener-arn cu:
aws elbv2 describe-listeners
--load-balancer-arn my-load-balancer-arn
Consultați referința comenzilor elbv2 pentru a gestiona în continuare Application Load Balancer-ul dvs.
Testați instalarea SSL
Navigați la versiunea HTTPS a domeniului dvs. și verificați prezența lacătului. Faceți clic pe el pentru a inspecta detaliile certificatului. Pentru un test mai amănunțit, folosiți SSL Checker: acesta scanează instalarea dvs. și creează un raport instant. De asemenea, puteți confirma certificatul din linia de comandă:
echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -dates
Aceasta afișează emitentul și datele de valabilitate ale certificatului servit de load balancer. Dacă ați importat un certificat nou dar tot vedeți vechiul certificat, confirmați că ascultătorul indică spre noul ARN și că testați regiunea și punctul final corecte.
Întrebări frecvente
Nu îl instalați pe un singur server. Importați certificatul în AWS Certificate Manager (ACM), apoi atașați ARN-ul rezultat unui serviciu gestionat care încheie conexiunea TLS, cum ar fi un Application sau Classic Load Balancer, o distribuție CloudFront sau un domeniu personalizat API Gateway.
Nu. ACM reînnoiește automat doar certificatele pe care le emite. Un certificat de la terți importat trebuie reemis și reimportat înainte de a expira. Reimportarea în același certificat ACM îi păstrează asocierile de servicii, astfel încât load balancer-ul continuă să servească certificatul reînnoit fără modificări suplimentare.
Folosiți ACM. Depozitul de certificate IAM este o metodă mai veche pe care AWS o păstrează în principal pentru compatibilitate inversă și pentru cazurile pe care ACM nu le acoperă. Pentru majoritatea configurațiilor, inclusiv load balancer-e și CloudFront, ACM este opțiunea recomandată.
Cel mai frecvent motiv este că cheia este criptată. ACM acceptă doar o cheie privată necriptată, codificată PEM, care corespunde certificatului. Eliminați mai întâi fraza de acces, apoi importați. Asigurați-vă că toate cele trei părți (certificat, lanț și cheie) sunt codificate PEM.
Importați-l în aceeași regiune ca load balancer-ul sau serviciul care îl va folosi, deoarece certificatele ACM sunt regionale. CloudFront este excepția: acceptă doar certificate importate în US East (N. Virginia), us-east-1.
Economisește 10% la certificatele SSL în momentul plasării comenzii!
Eliberare rapidă, criptare puternică, încredere în browser de 99,99%, suport dedicat și garanție de returnare a banilor în 25 de zile. Codul cuponului: SAVE10


