Jag försöker skapa ett privat-offentligt nyckelpar och konvertera den offentliga nyckeln till ett certifikat som kan läggas till i min förtroendebutik.

Att skapa privat & offentlig nyckel: openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem

Nu jag jag försöker konvertera detta till ett certifikat:

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

Men jag får ett fel:

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 

Alla tutorials visar att jag måste konvertera pem till crt innan jag lägger till i en truststore.

Svar

Du kan inte ” konvertera ”en offentlig nyckel till ett certifikat. Ett certifikat innehåller den offentliga nyckeln men det innehåller också mer information som ämnet, emittenten, när certifikatet är giltigt etc. Och ett certifikat undertecknas av emittenten. Således behöver du istället skapa en certifikatsigneringsförfrågan (CSR) som inkluderar den offentliga nyckeln men också innehåller all ytterligare information. Denna CSR måste sedan undertecknas av en certifikatutfärdare (CA) som sedan resulterar i certifikatet.

För att skapa ett enkelt självsignerat certifikat som inte är betrodd av någon webbläsare, se Hur man skapar ett självsignerat certifikat med openssl? .

Kommentarer

  • Så i det här exemplet: openssl req -x509 -nyckel rsa: 4096 -keyout key.pem -out cert.pem -days 365 key.pem kommer att innehålla både privat och offentlig nyckel?
  • @ user1692342: Jag ' är inte säker på hur frågan i kommentaren relaterar till den ursprungliga frågan. Men: key.pem är den privata nyckeln som innehåller den offentliga nyckeln och den offentliga nyckeln ingår också i cert.pem.

Svar

Du kan inte konvertera en offentlig nyckel till ett certifikat.

De ursprungliga kommandona fungerar inte eftersom PEM-kodning / filformat förväntar sig att innehålla den krypterade certifikatstexten som nedan:

—– BÖRJA CERTIFIKAT —–

Certifikatdata här

—– SLUTCERTIFIKAT —–

Om du ser den ursprungliga .PEM-filen och ser något annat (som BÖRJA RSA …) så är det fel.

Nu enligt trådtiteln du försöker konvertera en PEM till ett CRT-filformat . Observera att x509-certifikat kan finnas i två kodningar – DER och PEM. Dessutom kan PEM vara i formatet .CRT, .CER och även .PEM.

Om du ser det felet finns det därför också en chans att du behandlar ett DER-kodat certifikat som ett PEM-kodat certifikat. Du kan försöka se om den faktiskt är DER-kodad genom att följa instruktionerna på denna sida .

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *