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 .