Ik probeer een privé-openbaar sleutelpaar te genereren en de openbare sleutel om te zetten in een certificaat dat kan worden toegevoegd in mijn truststore.

Om een privé & openbare sleutel te genereren: openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem

Nu heb ik probeer dit om te zetten naar een certificaat:

openssl x509 -outform der -in public_key.pem -out public.cer 

Maar ik krijg een foutmelding:

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 

Alle tutorials laten zien dat ik pem naar crt moet converteren voordat ik het aan een truststore toevoeg.

Antwoord

Dat kan niet ” converteer een openbare sleutel naar een certificaat. Een certificaat bevat de openbare sleutel, maar het bevat ook meer informatie zoals het onderwerp, de uitgever, wanneer het certificaat geldig is, enz. En een certificaat wordt ondertekend door de uitgever. Dus wat u in plaats daarvan nodig zou hebben, is een certificaatondertekeningsverzoek (CSR) maken dat de openbare sleutel bevat, maar ook alle aanvullende informatie. Deze CSR moet vervolgens worden ondertekend door een certificeringsinstantie (CA) die vervolgens resulteert in het certificaat.

Voor het maken van een eenvoudig zelfondertekend certificaat dat door geen enkele browser wordt vertrouwd, zie Hoe maak je een zelfondertekend certificaat aan met openssl? .

Opmerkingen

  • Dus in dit voorbeeld: openssl req -x509 -newkey rsa: 4096 -keyout key.pem -out cert.pem -days 365 key.pem zal zowel een private als publieke sleutel bevatten?
  • @ user1692342: ik ' m niet zeker hoe de vraag in de opmerking betrekking heeft op de oorspronkelijke vraag. Maar: key.pem is de privésleutel die de openbare sleutel bevat en de openbare sleutel is ook opgenomen in cert.pem.

Antwoord

U kunt een openbare sleutel niet omzetten in een certificaat.

De originele commandos zullen niet werken aangezien de PEM-codering / bestandsindeling verwacht de gecodeerde certificaattekst te bevatten zoals hieronder:

—– BEGIN CERTIFICAAT —–

Certificaatgegevens hier

—– END CERTIFICAAT —–

Dus als je het originele .PEM-bestand bekijkt en iets anders ziet (zoals BEGIN RSA …), dan is dat onjuist.

Nu, volgens de threadtitel willen een PEM converteren naar een CRT-bestandsformaat . Merk op dat x509-certificaten in twee coderingen kunnen zijn: DER en PEM. PEM kan ook binnen een .CRT-, .CER- en ook .PEM-indeling zijn.

Als u die fout ziet, is er dus ook een kans dat u een DER-gecodeerd certificaat behandelt als een PEM-gecodeerd certificaat. U kunt proberen te zien of het daadwerkelijk DER-gecodeerd is door de instructies op deze pagina te volgen.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *