V ideálním případě SSL certifikáty vydávají veřejně důvěryhodné certifikační autority (např. Let’s Encrypt , Comodo , Verisign ) k poskytování ověřování a šifrování na internetu. Certifikát SSL však můžete získat, aniž byste museli procházet certifikační autoritou třetí strany – toto je to, co se nazývá certifikát s vlastním podpisem.
Tento výukový program popisuje, jak vygenerovat certifikát SSL s vlastním podpisem pomocí OpenSSL v Linuxu. OpenSSL je softwarová knihovna s otevřeným zdrojovým kódem, která se používá k implementaci zabezpečené komunikace na internetu.
Jak nainstalovat OpenSSL v Linuxu
OpenSSL přichází předinstalovaný na hlavních distribucích Linuxu a můžete potvrdit, že OpenSSL je nainstalován na vašem počítači se systémem Linux pomocí následujícího příkazu.
$ openssl version
Měli byste vidět výstup s OpenSSL informace o verzi podobné tomu, co je znázorněno na obrázku níže. Používám Ubuntu Linux 20.04 .

Pokud OpenSSL není nainstalováno, můžete spustit následující příkaz a nainstalovat OpenSSL v Linuxu.
$ sudo apt install openssl [On Debian/Ubuntu/Mint] $ sudo yum install openssl [On RHEL/CentOS/Fedora]
Generujte certifikáty SSL s vlastním podpisem pomocí OpenSSL
Jakmile potvrdíte, že openssl je nainstalován nástroj, nyní jste připraveni vygenerovat certifikát s vlastním podpisem následovně.
Vygenerujte soukromý klíč OpenSSL
Nejprve spusťte níže uvedený příkaz a vygenerujte a uložte svůj soukromý klíč, který bude použit k podepsání certifikátu SSL. Místo ubuntu_server můžete použít cokoli .
$ openssl genrsa -out ubuntu_server.key

Váš soukromý klíč bude uložen v aktuálním pracovním adresáři.
Vygenerovat žádost o podpis certifikátu
Dále vygenerujte Žádost o podpis certifikátu (CSR ) pomocí následujícího příkazu. Všimněte si, že budete muset zadat správný název soukromého klíče, který jste vygenerovali dříve.
$ openssl req -new -key ubuntu_server.key -out ubuntu_server.csr
Během procesu generování CSR , budete vyzváni k zadání některých informací, které budou spojeny s vaší žádostí o podpis certifikátu. CSR se uloží do aktuálního pracovního adresáře.

Poznámka :Některá pole můžete nechat prázdná. Například pole pod „extra ’ atributy mohou zůstat prázdné stisknutím klávesy Enter na klávesnici.
Po úspěšném dokončení CSR jste připraveni podepsat svůj certifikát sami.
Samopodepsat svůj certifikát
Spusťte níže uvedený příkaz a požádejte o certifikát s vlastním podpisem, který bude platný pro 365 dní. x509 možnost odkazuje na X.509 mezinárodní standard pro vytváření a ověřování certifikátů veřejného klíče. Nezapomeňte nahradit ubuntu_server podle potřeby.
$ openssl x509 -req -days 365 -in ubuntu_server.csr -signkey ubuntu_server.key -out ubuntu_server.crt

Váš certifikát s vlastním podpisem bude uložen v aktuálním pracovním adresáři a můžete jej potvrdit spuštěním příkazu ls.
$ ls

Podrobnosti certifikátu můžete také zkontrolovat pomocí následujícího příkazu.
$ openssl x509 -text -noout -in ubuntu_server.crt
V tomto okamžiku je váš certifikát s vlastním podpisem připraven k nasazení do vašich webových aplikací nebo webů.
Závěr
V této příručce jsme popsali, jak generovat certifikáty SSL s vlastním podpisem pomocí nástroje openssl v Linuxu. Pamatujte, že certifikáty s vlastním podpisem jsou považovány za nezabezpečené všemi hlavními webovými prohlížeči. Proto byste pravděpodobně měli takové certifikáty používat pouze interně nebo pro účely testování a vývoje.