Mkcert je bezplatný, jednoduchý a velmi užitečný nástroj, který vám umožní vytvořit místně důvěryhodný certifikát, aniž byste jej kupovali od skutečné CA. Vývojáři obvykle pracují na lokálním systému a na localhostu je vždy nemožné použít důvěryhodný certifikát od CA. Mkcert vám umožňuje spravovat své vlastní certifikáty bez jakýchkoli potíží.
V tomto příspěvku vám ukážeme, jak vytvořit důvěryhodný certifikát SSL pro místní vývoj pomocí Mkcert na Ubuntu 20.04.
Předpoklady
- Systém se systémem Ubuntu 20.04 Desktop.
- Na serveru je nakonfigurováno heslo uživatele root.
Začínáme
Nejprve aktualizujte systémové balíčky na aktualizovanou verzi spuštěním následujícího příkazu:
apt-get update -y
Jakmile jsou všechny balíčky aktualizovány, můžete přejít k dalšímu kroku.
Instalovat Mkcert
Před instalací obslužného programu Mkcert budete muset nainstalovat požadované balíčky na váš server. Můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install wget libnss3-tools
Jakmile jsou všechny balíčky nainstalovány, stáhněte si nejnovější verzi Mkcert z Github.
wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.3/mkcert-v1.4.3-linux-amd64
Po stažení Mkcert přesuňte stažený binární soubor do systémové cesty:
mv mkcert-v1.4.3-linux-amd64 /usr/bin/mkcert
Dále nastavte oprávnění ke spuštění na mkcert:
chmod +x /usr/bin/mkcert
Dále ověřte verzi Mkcert pomocí následujícího příkazu:
mkcert --version
Měli byste vidět následující výstup:
v1.4.3
Generovat místní CA
Nyní spusťte následující příkaz pro vygenerování certifikátu místní CA:
mkcert -install
Měli byste vidět následující výstup:
Created a new local CA ???? The local CA is now installed in the system trust store! ?? The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! ????
Cestu certifikátu CA můžete zkontrolovat pomocí následujícího příkazu:
mkcert -CAROOT
Měli byste vidět následující výstup:
/root/.local/share/mkcert
Vygenerovat certifikát pro místní web
Dále můžete vygenerovat soubor certifikátu a klíče pro váš lokálně hostovaný web pomocí následujícího příkazu:
mkcert app.example.com localhost 127.0.0.1 ::1
Měli byste vidět následující výstup:
Created a new certificate valid for the following names ???? - "app.example.com" - "localhost" - "127.0.0.1" - "::1" The certificate is at "./app.example.com+3.pem" and the key at "./app.example.com+3-key.pem" ? It will expire on 1 November 2023 ????
Nakonfigurujte Nginx pro použití vygenerovaného certifikátu
Dále budete muset nakonfigurovat webový server Nginx, aby používal vygenerované certifikáty.
Nejprve zkopírujte vygenerované soubory certifikátů do adresáře /etc/ssl/:
cp app.example.com+3* /etc/ssl/
Dále nastavte správné vlastnictví webového kořenového adresáře Nginx:
chown -R www-data:www-data /var/www/html/
Dále vytvořte konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:
nano /etc/nginx/conf.d/app.conf
Přidejte následující řádky:
server { listen 80; server_name app.example.com; root /var/www/html; } server { listen *:443 ssl; root /var/www/html; server_name app.example.com; ssl_certificate /etc/ssl/app.example.com+3.pem; ssl_certificate_key /etc/ssl/app.example.com+3-key.pem; }
Po dokončení uložte a zavřete soubor a poté ověřte, zda Nginx neobsahuje nějakou chybu syntaxe:
nginx -t
Měli byste vidět následující výstup:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Poté restartujte službu Nginx, aby se změny aplikovaly:
systemctl restart nginx
Dále upravte soubor /etc/hosts a připojte svůj app.example.com k vaší systémové IP adrese:
nano /etc/hosts
Přidejte následující řádky:
your-server-ip app.example.com
Ověřte SSL pro vaši doménu
Nyní otevřete webový prohlížeč a zadejte adresu URL https://app.example.com . Měli byste vidět, že vaše doména je zabezpečena pomocí Mkcert.
Nyní klikněte na Zamknout ikona. Informace o vašem certifikátu byste měli vidět na následující stránce:
Závěr
Gratulujeme! úspěšně jste nainstalovali Mkcert a vytvořili důvěryhodný certifikát CA pro váš místní vývoj. Mkcert bych doporučil používat pouze pro vývojové prostředí. Nedoporučuje se pro produkční prostředí.