Creați, gestionați și convertiți certificate SSL cu OpenSSL
Una dintre cele mai populare comenzi din SSL pentru a crea, converti, gestiona certificatele SSL este OpenSSL.
Vor fi multe situații în care va trebui să faceți față cu OpenSSL în diferite moduri, iar aici le-am enumerat pentru dvs. ca o foaie de cheat utilă.
În acest articol, voi vorbi despre comenzile OpenSSL utilizate frecvent pentru a vă ajuta în lumea reală.
Unele dintre abrevieri legate de certificate.
- SSL – Secure Socket Layer
- CSR – Cerere de semnare a certificatului
- TLS – Transport Layer Security
- PEM – Poștă îmbunătățită pentru confidențialitate
- DER – Reguli de codificare distincte
- SHA – Secure Hash Algorithm
- PKCS – Standarde de criptare cu cheie publică
Notă: Curs de operare SSL/TLS ar fi de ajutor dacă nu sunteți familiarizat cu termenii.
Cuprins
Creați o nouă cheie privată și cerere de semnare a certificatului
openssl req -out tipstrick.ro.csr -newkey rsa:2048 -nodes -keyout tipstrick.ro.key
Comanda de mai sus va genera CSR și un fișier cheie RSA de 2048 de biți. Dacă intenționați să utilizați acest certificat în Apache sau Nginx, atunci trebuie să trimiteți acest fișier CSR către autoritatea emitentă a certificatului, iar ea vă va oferi un certificat semnat, mai ales în format der sau pem, pe care trebuie să îl configurați pe serverul web Apache sau Nginx. .
Creați un certificat autosemnat
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem
Comanda de mai sus va genera un certificat autosemnat și un fișier cheie cu RSA pe 2048 de biți. Am inclus și sha256, deoarece este considerat cel mai sigur în acest moment.
Sfat: în mod implicit, va genera un certificat autosemnat valabil doar o lună, așa că vă recomandăm să definiți parametrul –days pentru a prelungi valabilitatea.
Ex: să aibă autosemnat valabil doi ani.
openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem
Verificați fișierul CSR
openssl req -noout -text -in tipstrick.ro.csr
Verificarea este esențială pentru a vă asigura că trimiteți CSR autorității emitente cu detaliile necesare.
Creați cheia privată RSA
openssl genrsa -out private.key 2048
Dacă trebuie doar să generați cheia privată RSA, puteți utiliza comanda de mai sus. Am inclus 2048 pentru o criptare mai puternică.
Eliminați fraza de acces din cheie
openssl rsa -in certkey.key -out nopassphrase.key
Dacă utilizați o frază de acces în fișierul cheie și utilizați Apache, atunci de fiecare dată când porniți, trebuie să introduceți parola. Dacă sunteți enervat să introduceți o parolă, atunci puteți utiliza openssl rsa -in tipstrick.ro.key -check de mai sus pentru a elimina cheia frazei de acces dintr-o cheie existentă.
Verificați cheia privată
openssl rsa -in certkey.key –check
Dacă vă îndoiți de fișierul cheie, puteți utiliza comanda de mai sus pentru a verifica.
Verificați fișierul certificatului
openssl x509 -in certfile.pem -text –noout
Dacă doriți să validați datele certificatului, cum ar fi CN, OU, etc., atunci puteți utiliza o comandă de mai sus care vă va oferi detalii despre certificat.
Verificați autoritatea semnatarului de certificat
openssl x509 -in certfile.pem -noout -issuer -issuer_hash
Autoritatea emitentă a certificatului semnează fiecare certificat și în cazul în care trebuie să le verificați.
Verificați valoarea hash a unui certificat
openssl x509 -noout -hash -in bestflare.pem
Convertiți DER în format PEM
openssl x509 –inform der –in sslcert.der –out sslcert.pem
De obicei, autoritatea de certificare vă va oferi certificat SSL în format .der, iar dacă trebuie să le utilizați în format apache sau .pem, comanda de mai sus vă va ajuta.
Convertiți PEM în format DER
openssl x509 –outform der –in sslcert.pem –out sslcert.der
În cazul în care trebuie să schimbați formatul .pem în .der
Convertiți certificatul și cheia privată în formatul PKCS#12
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem
Dacă trebuie să utilizați un certificat cu aplicația java sau cu oricare altul care acceptă doar formatul PKCS#12, puteți utiliza comanda de mai sus, care va genera un singur pfx care conține certificat și fișier cheie.
Sfat: puteți include și certificatul de lanț prin trecerea –chain ca mai jos.
openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem
Creați CSR folosind o cheie privată existentă
openssl req –out certificate.csr –key existing.key –new
Dacă nu doriți să creați o cheie privată nouă în loc să utilizați una existentă, puteți merge cu comanda de mai sus.
Verificați conținutul certificatului de format PKCS12
openssl pkcs12 –info –nodes –in cert.p12
PKCS12 este un format binar, astfel încât nu veți putea vizualiza conținutul în notepad sau alt editor. Comanda de mai sus vă va ajuta să vedeți conținutul fișierului PKCS12.
Convertiți formatul PKCS12 în certificat PEM
openssl pkcs12 –in cert.p12 –out cert.pem
Dacă doriți să utilizați formatul pkcs12 existent cu Apache sau doar în format pem, acest lucru va fi util.
Testați certificatul SSL pentru o anumită adresă URL
openssl s_client -connect yoururl.com:443 –showcerts
Folosesc acest lucru destul de des pentru a valida certificatul SSL al unei anumite adrese URL de pe server. Acest lucru este foarte util pentru a valida detaliile protocolului, cifrului și certificatului.
Aflați versiunea OpenSSL
openssl version
Dacă sunteți responsabil să vă asigurați că OpenSSL este securizat, atunci probabil că unul dintre primele lucruri pe care trebuie să le faceți este să verificați versiunea.
Verificați data de expirare a certificatului de fișier PEM
openssl x509 -noout -in certificate.pem -dates
Util dacă intenționați să faceți o monitorizare pentru a verifica validitatea. Vă va afișa o dată în sintaxa notBefore și notAfter. notAfter este unul, va trebui să verificați pentru a confirma dacă un certificat este expirat sau este încă valabil.
Ex:
[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates notBefore=Jul 4 14:02:45 2015 GMT notAfter=Aug 4 09:46:42 2015 GMT [[email protected] opt]#
Verificați data de expirare a certificatului a URL-ului SSL
openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate
Un alt util dacă intenționați să monitorizați de la distanță data de expirare a certificatului SSL sau o anumită adresă URL.
Ex:
[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate notAfter=Dec 8 00:00:00 2015 GMT
Verificați dacă SSL V2 sau V3 este acceptat pe URL
Pentru a verifica SSL V2
openssl s_client -connect secureurl.com:443 -ssl2
Pentru a verifica SSL V3
openssl s_client -connect secureurl.com:443 –ssl3
Pentru a verifica TLS 1.0
openssl s_client -connect secureurl.com:443 –tls1
Pentru a verifica TLS 1.1
openssl s_client -connect secureurl.com:443 –tls1_1
Pentru a verifica TLS 1.2
openssl s_client -connect secureurl.com:443 –tls1_2
Dacă securizați un server web și trebuie să validați dacă SSL V2/V3 este activat sau nu, puteți utiliza comanda de mai sus. Dacă este activat, veți fi „CONECTAT”, altfel „eșec de strângere de mână”.
Verificați dacă cifrul specific este acceptat pe URL
openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443
Dacă lucrați la constatări de securitate și rezultatele testelor stiloului arată că unele dintre cifrurile slabe sunt acceptate, atunci pentru a valida, puteți utiliza comanda de mai sus.
Desigur, va trebui să schimbați cifrul și adresa URL, cu care doriți să testați. Dacă cifrul menționat este acceptat, atunci veți fi „CONECTAT”, altfel „eșec de strângere de mână”.
Sper că comenzile de mai sus vă ajută să aflați mai multe despre OpenSSL pentru a gestiona certificatele SSL pentru site-ul dvs.