Snažím se vygenerovat pár soukromého a veřejného klíče a převést veřejný klíč na certifikát, který lze přidat do mého úložiště důvěry.
Chcete-li vygenerovat soukromý veřejný klíč &: openssl rsa -in private.pem -outform PEM -pubout -out public_key.pem
Teď jsem Snažím se převést to na certifikát:
openssl x509 -outform der -in public_key.pem -out public.cer
Ale dostanu chybu:
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
Všechny výukové programy ukazují, že před přidáním do úložiště údajů o důvěryhodnosti musím převést pem na crt.
Odpovědět
Nemůžete “ převést „veřejný klíč na certifikát. Certifikát obsahuje veřejný klíč, ale obsahuje také další informace, jako je subjekt, vydavatel, kdy je certifikát platný atd. A certifikát je podepsán emitentem. Místo toho tedy potřebujete vytvořit žádost o podepsání certifikátu (CSR), která obsahuje veřejný klíč, ale také obsahuje všechny další informace. Tuto CSR je poté nutné podepsat certifikační autoritou (CA), která následně vede k certifikátu.
Informace o vytvoření jednoduchého certifikátu s vlastním podpisem, kterému žádný prohlížeč nedůvěřuje, naleznete v části Jak vytvořit certifikát s vlastním podpisem pomocí openssl? .
Komentáře
- Takže v tomto příkladu: openssl req -x509 -newkey rsa: 4096 -keyout key.pem -out cert.pem -days 365 key.pem bude obsahovat soukromý i veřejný klíč?
- @ user1692342: <
= „57c85f8d3c“>
si nejsem jistý, jak se otázka v komentáři týká původní otázky. Ale: key.pem je soukromý klíč, který obsahuje veřejný klíč a veřejný klíč je také součástí cert.pem.
Odpověď
Veřejný klíč nelze převést na certifikát.
Původní příkazy nebudou fungovat, protože formát kódování / souboru PEM očekává, že bude obsahovat šifrovaný text certifikátu, jak je uvedeno níže:
—– ZAČÁTEK CERTIFIKÁT —–
Data certifikátu zde
—– KONEC CERTIFIKÁT —–
Pokud tedy prohlížíte původní soubor .PEM a vidíte něco jiného (například BEGIN RSA …), pak je to nesprávné.
Nyní podle názvu vlákna, které se snaží převést PEM do formátu souboru CRT . Upozorňujeme, že certifikáty x509 mohou být ve dvou kódováních – DER a PEM. PEM může být také ve formátu .CRT, .CER a také .PEM.
Proto pokud vidíte tuto chybu, existuje také šance, že s certifikátem kódovaným DER zacházíte jako s certifikátem kódovaným PEM. Podle pokynů na této stránce můžete zkusit zjistit, zda je skutečně zakódováno DER.