Tento článek vysvětluje, jak vytvořit certifikát SSL s vlastním podpisem pomocí openssl
nástroj.
Co je certifikát SSL s vlastním podpisem? #
Certifikát SSL s vlastním podpisem je certifikát, který je podepsán osobou, která jej vytvořila, nikoli důvěryhodnou certifikační autoritou. Certifikáty s vlastním podpisem mohou mít stejnou úroveň šifrování jako důvěryhodný certifikát SSL podepsaný CA.
Webové prohlížeče nerozpoznají certifikáty podepsané svým držitelem jako platné. Při použití certifikátu s vlastním podpisem zobrazí webový prohlížeč návštěvníkovi varování, že certifikát webové stránky nelze ověřit.
Certifikáty s vlastním podpisem se obvykle používají pro testovací účely nebo pro interní použití. Certifikát podepsaný svým držitelem byste neměli používat v produkčních systémech, které jsou vystaveny internetu.
Předpoklady #
Ke generování certifikátu s vlastním podpisem je vyžadována sada nástrojů OpenSSL.
Chcete-li zkontrolovat, zda openssl
balíček je nainstalován na vašem systému Linux, otevřete svůj terminál, zadejte openssl version
a stiskněte Enter. Pokud je balíček nainstalován, systém vytiskne verzi OpenSSL, jinak uvidíte něco jako openssl command not found
.
Pokud balíček openssl není na vašem systému nainstalován, můžete jej nainstalovat pomocí správce balíčků vaší distribuce:
-
Ubuntu a Debian
sudo apt install openssl
-
Centos a Fedora
sudo yum install openssl
Vytváření certifikátu SSL s vlastním podpisem #
Chcete-li vytvořit nový certifikát SSL s vlastním podpisem, použijte openssl req
příkaz:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key
Pojďme si příkaz rozebrat a pochopit, co jednotlivé možnosti znamenají:
-newkey rsa:4096
- Vytvoří novou žádost o certifikát a 4096bitový RSA klíč. Výchozí hodnota je 2048 bitů.-x509
– Vytvoří certifikát X.509.-sha256
– Použijte 265bitový algoritmus SHA (Secure Hash Algorithm).-days 3650
- Počet dní pro certifikaci certifikátu. 3650 je deset let. Můžete použít libovolné kladné celé číslo.-nodes
- Vytvoří klíč bez přístupové fráze.-out example.crt
- Určuje název souboru, do kterého se má zapsat nově vytvořený certifikát. Můžete zadat libovolný název souboru.-keyout example.key
- Určuje název souboru, do kterého se má zapsat nově vytvořený soukromý klíč. Můžete zadat libovolný název souboru.
Další informace o openssl req
možnosti příkazů, navštivte stránku dokumentace požadavků OpenSSL.
Jakmile stisknete Enter, příkaz vygeneruje soukromý klíč a položí vám řadu otázek. Informace, které jste poskytli, se použijí k vygenerování certifikátu.
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Zadejte požadované informace a stiskněte Enter
.
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:Alabama
Locality Name (eg, city) []:Montgomery
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxize
Organizational Unit Name (eg, section) []:Marketing
Common Name (e.g. server FQDN or YOUR name) []:linuxize.com
Email Address []:[email protected]
Certifikát a soukromý klíč budou vytvořeny na zadaném místě. Pomocí příkazu ls ověřte, že byly soubory vytvořeny:
ls
example.crt example.key
A je to! Vygenerovali jste nový certifikát SSL s vlastním podpisem.
Vždy je dobré zálohovat nový certifikát a klíč na externí úložiště.
Vytvoření certifikátu SSL s vlastním podpisem bez výzvy #
Pokud chcete vygenerovat certifikát SSL s vlastním podpisem, aniž byste byli vyzváni k zadání jakékoli otázky, použijte -subj
a zadejte všechny informace o předmětu:
openssl req -newkey rsa:4096 \
-x509 \
-sha256 \
-days 3650 \
-nodes \
-out example.crt \
-keyout example.key \
-subj "/C=SI/ST=Ljubljana/L=Ljubljana/O=Security/OU=IT Department/CN=www.example.com"
Generating a RSA private key
......................................................................++++
........++++
writing new private key to 'example.key'
-----
Pole specifikovaná v -subj
řádky jsou uvedeny níže:
C=
- Název státu. Dvoupísmenná zkratka ISO.ST=
– Název státu nebo provincie.L=
- Název lokality. Název města, kde se nacházíte.O=
– Úplný název vaší organizace.OU=
- Organizační jednotka.CN=
– Plně kvalifikovaný název domény.
Závěr č.
V této příručce jsme vám ukázali, jak vygenerovat certifikát SSL s vlastním podpisem pomocí nástroje openssl. Nyní, když máte certifikát, můžete nakonfigurovat aplikaci tak, aby jej používala.
Pokud máte nějaké dotazy, neváhejte zanechat komentář.