HTTPS je zabezpečená verze protokolu HTTP (Hypertext Transfer Protocol). HTTPS používá protokol SSL/TLS pro šifrování a ověřování a pro zabezpečení komunikace mezi prohlížečem a webovým serverem. Šifruje požadavky a odpovědi HTTP, aby se zabránilo tomu, že někdo vyčte informace sdílené mezi vaším prohlížečem a webovým serverem. Bez HTTPS by někdo mohl snímat a shromažďovat citlivé informace návštěvníků vašeho webu, jako jsou přihlašovací údaje a údaje o kreditní kartě.
V tomto tutoriálu vám ukážeme, jak povolit protokol HTTPS s Apache2 na našem spravovaném Ubuntu VPS. Ve výchozím nastavení, pokud nainstalujete Apache na svůj server Ubuntu 20.04, vytvoří se virtuální hostitel Apache pro název hostitele vašeho serveru a naslouchá pouze na nezabezpečeném portu (HTTP/80). To znamená, že pokud přejdete na název hostitele vašeho serveru pomocí webového prohlížeče, uvidíte výchozí stránku Apache2 Ubuntu, a pokud k ní přistoupíte přes HTTPS, zobrazí chybovou zprávu, protože Apache2 neposlouchá na portu 443 a ne Certifikát SSL je nakonfigurován.
Předpoklady
- Server s Ubuntu 20.04 a Apache.
- Uživatel root nebo běžný uživatel s právy sudo.
Krok 1:Přihlaste se přes SSH a aktualizujte balíčky
Přihlaste se ke svému Ubuntu 20.04 VPS přes SSH:
ssh sshuser@IP_Address -p Port_number
Nahraďte „sshuser“ uživatelem, který má oprávnění sudo nebo root. Navíc nahraďte „IP_Address“ a „Port_Number“ příslušnou IP adresou vašeho serveru a portem SSH.
Po přihlášení můžete zkontrolovat, zda máte na svém serveru nainstalovanou správnou verzi Ubuntu 20.04 pomocí následujícího příkazu:
$ sudo lsb_release -a
Měli byste získat tento výstup:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
Poté spusťte následující příkaz, abyste se ujistili, že všechny nainstalované balíčky na serveru jsou aktualizovány na nejnovější dostupné verze:
$ sudo apt update && sudo apt upgrade
To zajišťuje kompatibilitu mezi balíčky.
Krok 2:Povolte Mod SSL
Před spuštěním musíme povolit modul Apache SSL, spusťte tento příkaz:
$ sudo a2enmod ssl
Jak je vidět ve zprávě po spuštění příkazu, musíme restartovat Apache, aby se změny aktivovaly.
$ sudo systemctl restart apache2
Krok 3:Vytvořte certifikát SSL s vlastním podpisem
Certifikát SSL s vlastním podpisem je dobrou volbou, když zkoušíte nebo testujete věci na serveru Apache. I když váš osobní certifikát nebude pro prohlížeče nic znamenat a návštěvníci budou stále dostávat varovnou zprávu, pokud navštíví váš web přímo, můžete si být alespoň jisti, že jste chráněni před útoky typu „man-in-the-middle“. Pokud již máte placený certifikát SSL, můžete tento krok přeskočit a pokračovat.
Spuštěním tohoto příkazu vygenerujete certifikát SSL s vlastním podpisem.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/server.yourdomain.com.key -out /etc/ssl/certs/server.yourdomain.com.crt
Při spuštění výše uvedeného příkazu budete muset odpovědět na výzvy.
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
Ujistěte se, že zadáváte doménu/subdoménu, pro kterou chcete nainstalovat certifikát SSL. Můžete například zadat server.yourdomain.com
Výše uvedený příkaz uloží soukromý klíč na /etc/ssl/private/server.yourdomain.com.key a soubor certifikátu na /etc/ssl/certs/server.yourdomain.com.crt
Krok 4:Povolte HTTPS a nainstalujte certifikát SSL
V tomto tutoriálu použijeme místo výchozího konfiguračního souboru samostatný soubor virtuálního hostitele Apache. Předpokládáme, že již pro svou doménu máte funkční virtuální hostitele Apache. Můžeme spustit příkaz níže a zkopírovat konfigurační soubor yourdomain.com.conf do yourdomain.com-ssl.conf. Změňte v příkazu yourdomain.com na svůj vlastní soubor .conf, abyste se ujistili, že běží správně.
$ sudo cp -a /etc/apache2/sites-available/yourdomain.com{.conf,-ssl.conf}
Pojďme upravit nový soubor.
$ sudo nano /etc/apache2/sites-available/yourdomain.com-ssl.conf
Nahradit
<VirtualHost *:80>
v prvním řádku s
<VirtualHost *:443>
Poté přidejte tyto tři řádky:
SSLEngine on
SSLCertificateKeyFile /etc/ssl/private/server.yourdomain.com.key
SSLCertificateFile /etc/ssl/certs/server.yourdomain.com.crt
Uložte soubor a ukončete jej.
Poté musíme povolit verzi SSL vašeho webu. Můžeme spustit tento příkaz a povolit web:
$ sudo a2ensite yourdomain.com-ssl.conf
Nakonec zkontrolujte konfiguraci apache2 spuštěním tohoto příkazu:
$ sudo apache2ctl -t
Pokud je vše v pořádku, zobrazí se zpráva „Syntaxe OK“, můžete restartovat Apache.
$ sudo systemctl restart apache2
Upozorňujeme, že pokud již máte placený certifikát SSL, můžete upravit SSLCertificateKeyFile a SSLCertificateFile direktivy a nasměrujte je na správnou cestu k souboru certifikátu SSL a jeho soukromému klíči.
Můžete také spustit příkaz níže a zkontrolovat, zda je verze SSL vašeho webu povolena nebo ne.
To je vše! Když se Apache restartuje, bude nakonfigurován tak, aby umožňoval připojení SSL pomocí vygenerovaných certifikátů SSL s vlastním podpisem. Když na svůj web přejdete přes HTTPS, budete upozorněni, že se nejedná o důvěryhodný certifikát. To je v pořádku. Víme to, protože jsme to sami podepsali! Stačí pokračovat a uvidíte svůj skutečný web. To se nestane, pokud používáte placený certifikát SSL nebo certifikát SSL poskytovaný společností Letsencrypt.
Gratulujeme! V tuto chvíli byste měli být schopni povolit protokol HTTPS s Apache2 na Ubuntu 20.04.
Samozřejmě nemusíte vědět, jak povolit protokol HTTPS s Apache2 na Ubuntu 20.04, pokud máte Ubuntu 20.04 VPS hostovaný u nás. Jednoduše můžete požádat náš tým podpory, aby pro vás povolil protokol HTTPS s Apache2 na Ubuntu 20.04. Jsou k dispozici 24 hodin denně, 7 dní v týdnu a budou vám schopni pomoci s konfigurací protokolu HTTPS.
PS. Pokud se vám líbilo čtení tohoto blogového příspěvku o tom, jak povolit protokol HTTPS s Apache2 na Ubuntu 20.04, můžete jej sdílet na sociálních sítích pomocí níže uvedených zkratek nebo jednoduše zanechat komentář v sekci komentářů. Děkuji.