Rozchození Apache serveru na Windows serveru 2019 je poměrně jednoduché, trochu složitější je vystavení certifikáru pro https a jeho podpis certifikační autoritou Let’s Encrypt. V tomto návodu se dozvíte, jak jsem to dělal.
Nastavení sítě a DNS
Windows server 2019 se bude jmenovat wsrv.jr.lixis.cz, bude mít veřejné IPv4 i IPv6 adresy 46.253.99.39 a 2a0e:5340:4:1::2ab1



Do zónového souboru domény jr.lixis.cz musíme přidat A a AAAA záznamy pro stroj wsrv.
$ORIGIN jr.lixis.cz.
$TTL 3600
jr.lixis.cz. IN SOA dizzy.jr.lixis.cz. jirka.lixis.cz. (
2024012448; serial (1)
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
)
; ....
wsrv IN A 46.253.99.39
wsrv IN AAAA 2a0e:5340:4:1::2ab1
; ....
| 1 | Nesmíme zapomenout zvýšit sériové číslo zóny. |
Nastavení firewallu
Ve firewallu musíme povolit příchozí připojení na TCP port 80 pro http provoz a na TCP port 443 pro šifrovaný https provoz. Port 80 musíme povolit hlavně kvůli verifikaci certifikátu, který musíme vystavit.



Http provoz musíme povolit kvůli získání certifikátu.



Pokud nechceme hledat Windows firewall stačí do prohledávacího řádku (lupa) napsat wf.msc a stisknout Enter. Voila, máme k dispozici okno firewallu.
Instalace httpd serveru Apache
Apache HTTP SERVER PROJECT neposkytuje binární soubory pro instalaci web serveru Apache, pouze zdrojové soubory. Bylo by možné sestavit nejnovější verzi Apache http serveru ze zdrojových souborů, ale to je pracná záležitost. Použil jsem snadnější cestu a stáhnul jsem si sestavený server XAMPP (Apache a MariaDB a PHP a Perl) z webu https://www.apachefriends.org/ a instaloval z binárek.







Potřebuji, aby mi Apache a MySQL běžely jako služba. Nastavení služby se provede tak, že se klikne na červený křížek ve sloupci Service.


Konfigurace Apache
Konfigurační soubory Apache se nacházejí v adresáři c:\xampp\apache\conf\ a podadresářích, prostor pro html stránky je v adresáři c:\xampp\htdocs\.
Apache server je programován pro operační systém Linux a různé jiné Unixy, kde se používá jako oddělovač adresářů v cestě k souboru znak lomítko /, znak zpětné lomítko \ je escape znak.
V konfiguračních souborech Apache proto budeme psát cestu třeba takto: c:/xampp/htdocs a Apache tomu bude rozumět.
Pokud se budeme držet hloupých Windowsích zvyklostí a budeme používat ve jménech souborů a adresářů znak mezera a různá háčkovaná a čárkovaná písmenka, tak se zcela jistě dostaneme do problémů.
Hlavní konfigurační soubor je c:/xampp/conf/httpd.conf, pro šifrovaný web je to c:/xampp/conf/extra/httpd-ssl.conf.
V konfiguračním souboru musíme změnit pár věcí (jméno webu a správce), ostatní věci necháme na pokoji. Konfigurační soubor httpd.conf je obyčejný textový soubor, který se dá upravovat Notepadem,
já mám mnohem raději Notepad++. Doporučuji, abyste si ho nainstalovali, bude se vám pracovat mnohem lépe.
Před každou úpravou konfiguračního souboru doporučuji udělat zálohu.
Pokud uděláte někde chybu, služba nebude fungovat a můžete se vrátit k předchozímu funkčnímu stavu.
# ...
ServerAdmin jirka@lixis.cz
# ...
ServerName wsrv.jr.lixis.cz:80
Konfiguraci šifrovaného webu pro https necháme na později, až se nám podaří vystavit certifikát. Po každé změně konfiguračních souborů je potřeba v řídícím panelu XAMPP službu zastavit a znova nastartovat.
Uděláme si jednoduchý html soubor, který umístíme do kořene webu.
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="utf-8">
<title>Funguje to.</title>
<style>
body {
background-color: #96d7d7;
}
</style>
</head>
<body>
<h1>Funguje to.</h1>
<p>
Index.html pro testovací web.
</p>
</body>
</html>
Přejmenujeme c:\xampp\htdocs\index.php na něco jiného a můžeme testovat. V prohlížeči by měla být k dispozcici naše testovací html stránka po zadání http:/wsrv.jr.lixis.cz/ do příkazového řádku prohlížeče.
|
Některé debilní prohlížeče na Windows nechtějí zobrazovat nešifrované stránky, protože je to údajně nebezpečné. Pokud na takový narazíme, tak musíme zjistit (třeba pomocí strejdy Google), jak ho k zobrazení nešifrované stránky donutit. |

Vystavení certifikátu a podepsání
Budu používat certifikát s platností 3 měsíce a nechám si ho podepsat certifikační autoritou Let’s Encrypt. Výhoda je, že podepsání cetifikátu je zadarmo a certifikační autorita Let’s Encrypt je považována za důveryhodnou skoro všude (kromě prastarých systémů). Nevýhoda spočívá v tom, že musíme vymyslet, jak automaticky po 3 měsících prodloužit platnost certifikátu.
Pro generování certifikátu jsem použil jednoduchého ACMEv2 klienta win-acme.
Z webu stáhneme verzi 2.2.9.1 s podporou pluginů a rozbalíme v adresáři "c:\Program Files".
Při vystavování certifikátu nám musí Apache běžet.
.\wacs.exe --source manual --host wsrv.jr.lixis.cz --validation filesystem --webroot "C:\xampp\htdocs\" --store pemfiles --pemfilespath C:\xampp\apache\conf\ssl.crt\
V konfiguračním souboru c:\xampp\apache\conf\httpd-ssl.conf zapíšeme certifikát a klíč a nastavíme jméno webu a admina.
<VirtualHost _default_:443>
DocumentRoot "C:/xampp/htdocs"
ServerName wsrv.jr.lixis.cz:443 (1)
ServerAdmin jirka@lixis.cz (2)
SSLEngine On
SSLCertificateFile "conf/ssl.crt/wsrv.jr.lixis.cz-crt.pem" (3)
SSLCertificateKeyFile "conf/ssl.key/wsrv.jr.lixis.cz-key.pem" (4)
</VirtualHost>
| 1 | Nastavení jména serveru. |
| 2 | Nastavení administrátora serveru. |
| 3 | Sem dáme náš vystavený a podepsaný certifikát. Celá cesta je: c:\xampp\apache\conf\ssl.crt\wsrv.jr.lixis.cz-crt.pem |
| 4 | Toto je privátní klíč k certifikátu, vygenerovaný soubor wsrv.jr.lixis.cz-key.pem přesuneme z adresáře c:\xampp\apache\conf\ssl.crt\ do adresáře c:\xammp\apache\conf\ssl.key. |
A pokud všechno dopadlo dobře, tak nám bude fungovat https.

Program wcas.exe nám při vystavení certifikátu také naplánoval jeho obnovu, o čemž se můžeme přesvědčit v Plánovači úloh.

Alternativní instalace (jenom Apache)
Stáhneme Visual C++ Redistributable Visual Studio 2015-2022 a nainstalujeme.
Potom stáhneme Apache 2.4.62-240904 Win64, rozbalíme zip a obsah nakopírujeme do c:\Apache24.
V adresáři c:\Apache24\bin se nacházejí binárky.
C:\Windows\system32> cd c:\Apache24\bin
c:\Apache24\bin> httpd.exe
Serverů Apache můžeme instalovat více, jenom nesmí poslouchat na stejném portu a každá služba se musí jmenovat jinak.
C:\Windows\system32> cd c:\Apache24\bin
c:\Apache24\bin> httpd.exe -D jmeno_serveru -k install -n jmeno_sluzby (1)
| 1 | Služba bude instalována pod jménem jmeno_sluzby. |
Zda program Apache běží, můžeme zjistit třeba programem netstat.exe
c:\> netstat -a -b
Podrobnosti jsou zde.
C:\Windows\system32> cd c:\Apache24\bin
c:\Apache24\bin> httpd.exe -D jmeno_serveru -n jmeno_sluzby -k start (1)
c:\Apache24\bin> httpd.exe -D jmeno_serveru -n jmeno_sluzby -k stop (2)
c:\Apache24\bin> httpd.exe -h (3)
| 1 | Nastartování Apache. |
| 2 | Ukončení Apache. |
| 3 | Nápověda k volbám. |
Zdroje a odkazy
Set up Certificate Authorities (CAs) in Firefox se může hodit pokud používáme svoji CA.