česky | english
Jak nastavit server s certifikátem SSL na Debianu
Jak nastavit, aby webový server Apache 2.4 na operačním systému Debian GNU/Linux používal certifikát SSL.
Všechny následující příkazy musíte vydávat jako root z příkazového řádku:
- jděte do adresáře /etc/apache/ssl (pozor, závisí na verzi Debianu):
cd /etc/apache/ssl
- vytvořte privátní klíč:
openssl genrsa -out supersecret.key 4096
- generujte z něj žádost o certifikát:
openssl req -key supersecret.key -new
Odpovězte na následující otázky (po každé odpovědi stiskněte Enter):
Country Code [kód země]: (viz: https://www.iso.org/obp/ui/#search, pro Českou republiku CZ)
State or Province: Kraj/okres/provincie, kde bydlím
Locality name [lokalita]: Město/obec, kde bydlím
Organization Name [název organizace]: Dávám sem tečku, která ponechá pole prázdné
Organizational Unit [organizační jednotka]: Dávám tečku
Common Name [obecný název]: Plně kvalifikovaný název (FQDN) mého serveru
Email Address: Moje e-mailová adresa
Challenge password [heslo]: Toto nechávám prázdné
Optional company name [volitelný název firmy]: Toto nechávám prázdné
To vygeneruje žádost o certifikát (CSR) a zobrazí ji. Zkopírujte ji a vložte do webového formuláře CAcert: Certifikáty serveru - Nový.
- CACert pak vygeneruje certifikát. Zkopírujte ho a vložte do souboru na serveru. Protože používám Debian, je správné umístění:
/etc/apache2/ssl
- Uložte ho do uvedeného adresáře certifikát jako soubor např. myserver.crt
- Dále si stáhněte od CACert zprostředkující certifikát (třídy 3) a uložte ho do téhož adresáře (/etc/apache2/ssl). Stáhněte rovněž kořenový certifikát CACert třídy 1 a uložte ho do téhož adresáře.
- Zkombinujte privátní klíč, certifikát svého serveru a oba kořenové certifikáty do jednoho souboru:
cat supersecret.key myserver.crt class3_x14E228.crt root_X0F.crt > myserver.pem
- Změňte oprávnění, aby výsledný soubor PEM nemohl číst nikdo jiný:
chmod 600 myserver.pem
POZOR: Postup platí pro Apache verze vyšší než 2.4.8. Máte-li starší verzi, pak dejte oba kořenové certifikáty do jiného, tzv. řetězového souboru (chain file).
- Upravte konfigurační soubor Apache SSL (/etc/apache2/sites-available/default-ssl.conf) (a opět - toto je specifické pro Debian) a určete umístění souboru v SSLCertificateFile.
POZOR, nechcete-li raději uložit privátní klíč do souboru PEM, specifikujte také SSLCertificateKeyFile. Já to mám raději všechno pohromadě v jediném souboru typu PEM. Používáte-li Apache verze nižší než 2.4.8, zadejte také "řetězový soubor" (chain file), který obsahuje oba kořenové certifikáty CACert, do parametru SSLCertificateChainFile.
- Zapněte SSL web:
a2ensite default-ssl
- Restartujte Apache
apache2ctl graceful
To je vše; nyní Váš server běží a používá SSL certifikát od CACert.org.
Podobný návod pro Ubuntu: https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04
Zdroj: BM/15