Încerc să generez o pereche de chei private-publice și să convertesc cheia publică într-un certificat care poate fi adăugat în magazinul meu de încredere.
Pentru a genera cheie publică privată &: openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem
Acum am Încerc să convertesc acest lucru într-un certificat:
openssl x509 -outform der -in public_key.pem -out public.cer
Dar primesc o eroare:
7962:error:0906D06C:PEM routines:PEM_read_bio:no start line:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.30.2/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE
Toate tutorialele arată că trebuie să convertesc pem în crt înainte de a adăuga la un magazin de încredere.
Răspuns
Nu poți ” convertiți „o cheie publică într-un certificat. Un certificat include cheia publică, dar include și mai multe informații precum subiectul, emitentul, când certificatul este valid etc. Și un certificat este semnat de emitent. Astfel, ceea ce ai avea nevoie în schimb este să creezi o cerere de semnare a certificatului (CSR) care include cheia publică, dar include și toate informațiile suplimentare. Acest CSR trebuie apoi semnat de o autoritate de certificare (CA), care are ca rezultat certificatul.
Pentru crearea unui certificat simplu autosemnat, care nu este de încredere de niciun browser, consultați Cum se creează un certificat autosemnat cu openssl? .
Comentarii
- Deci, în acest exemplu: openssl req -x509 -newkey rsa: 4096 -keyout key.pem -out cert.pem -days 365 key.pem va conține atât cheia privată, cât și cea publică?
- @ user1692342: Nu ' nu sunt sigur cum se referă întrebarea din comentariu la întrebarea inițială. Dar: key.pem este cheia privată care include cheia publică , iar cheia publică este inclusă și în cert.pem.
Răspuns
Nu puteți converti o cheie publică într-un certificat.
Comenzile originale nu vor funcționa deoarece codificarea PEM / formatul de fișier se așteaptă să conțină textul certificatului criptat ca mai jos:
—– BEGIN CERTIFICATE —–
Datele certificatului aici
—– END CERTIFICATE —–
Prin urmare, dacă vizualizați fișierul .PEM original și vedeți altceva (cum ar fi BEGIN RSA …) atunci acest lucru este incorect.
Acum, în funcție de titlul firului căutați să convertiți un PEM într-un format de fișier CRT . Rețineți că certificatele x509 pot fi în două codificări – DER și PEM. De asemenea, PEM poate fi în format .CRT, .CER și .PEM.
Prin urmare, dacă vedeți acea eroare, există și șansa de a trata un certificat codificat DER ca un certificat codificat PEM. Puteți încerca să vedeți dacă este de fapt codificat DER urmând instrucțiunile din această pagină .