Jeg prøver at generere et privat-offentligt nøglepar og konvertere den offentlige nøgle til et certifikat, der kan tilføjes i min tillidsbutik.

At generere privat & offentlig nøgle: openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem

Nu har jeg prøver at konvertere dette til et certifikat:

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

Men jeg får en fejl:

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 vejledninger viser, at jeg skal konvertere pem til crt, før jeg tilføjer til en truststore.

Svar

Du kan ikke ” konvertere “en offentlig nøgle til et certifikat. Et certifikat inkluderer den offentlige nøgle, men det indeholder også flere oplysninger som emnet, udstederen, når certifikatet er gyldigt osv. Og et certifikat er underskrevet af udstederen. Det, du i stedet har brug for, er således at oprette en certifikatsigneringsanmodning (CSR), der inkluderer den offentlige nøgle, men også indeholder alle de yderligere oplysninger. Denne CSR skal derefter underskrives af en certifikatmyndighed (CA), som derefter resulterer i certifikatet.

For at oprette et simpelt selvsigneret certifikat, som ikke er tillid til af nogen browser, se Hvordan oprettes et selvsigneret certifikat med openssl? .

Kommentarer

  • Så i dette eksempel: openssl req -x509 -nykey rsa: 4096 -keyout key.pem -out cert.pem -dage 365 key.pem vil indeholde både privat og offentlig nøgle?
  • @ user1692342: Jeg ' er ikke sikker på, hvordan spørgsmålet i kommentaren vedrører det originale spørgsmål. Men: key.pem er den private nøgle, som inkluderer den offentlige nøgle , og den offentlige nøgle er også inkluderet i cert.pem.

Svar

Du kan ikke konvertere en offentlig nøgle til et certifikat.

De originale kommandoer fungerer ikke, da PEM-kodning / filformat forventer at indeholde den krypterede certifikattekst som nedenfor:

—– BEGIN CERTIFICATE —–

Certificate data here

—– END CERTIFICATE —–

Hvis du ser den originale .PEM-fil og ser noget andet (som BEGIN RSA …), så er det forkert.

Nu ifølge trådtitlen, skal du søger at konvertere en PEM til et CRT-filformat . Bemærk, at x509-certifikater kan være i to kodninger – DER og PEM. PEM kan også være i et .CRT-, .CER- og også .PEM-format.

Derfor, hvis du ser denne fejl, er der også en chance for, at du behandler et DER-kodet certifikat som et PEM-kodet certifikat. Du kan prøve at se, om det faktisk er DER-kodet ved at følge instruktionerne på denne side .

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *