Serwer poczty na FreeBSD 13 (cz. 3): Apache, HTTPS (Let's Encrypt) i PHP
System mamy gotowy (część 2). Teraz stawiamy Apache, zabezpieczamy go certyfikatem Let’s Encrypt (HTTPS) i dokładamy PHP — to fundament pod webowe panele, które zainstalujemy później (phpMyAdmin, PostfixAdmin, Roundcube).
📅 Wersje z epoki (2021). Apache 2.4, certbot py38, PHP 7.4. Przy wdrożeniu użyj aktualnych wersji.
Instalacja Apache
Apache instalujemy jako jedną z pierwszych usług — dzięki temu w trakcie konfiguracji kolejnych usług będziemy mogli od razu stawiać ich webowe „nakładki”. Instalację rozpoczynamy poleceniem:
pkg install apache24
Instalator informuje o konieczności włączenia usługi w /etc/rc.conf. Możemy wyedytować plik ręcznie lub użyć sysrc:
sysrc apache24_enable="YES"
Przy starcie Apache wyświetla ostrzeżenie o braku ServerName:
service apache24 start
Performing sanity check on apache24 configuration:
AH00557: httpd: apr_sockaddr_info_get() failed for brylka
AH00558: httpd: Could not reliably determine the server's fully qualified domain
name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Starting apache24.Edytujemy /usr/local/etc/apache24/httpd.conf i ustawiamy ServerName:



HTTPS — certyfikat Let’s Encrypt
Instalujemy klienta Let’s Encrypt (certbot). Ponieważ w systemie nie było jeszcze Pythona, doinstaluje się on razem z pakietami:
pkg install py38-certbot py38-certbot-apache

W konfiguracji Apache włączamy moduł mod_ssl:

Przed uruchomieniem certbota dodajemy wirtualnego hosta dla domeny:

Następnie certbot wystawia i instaluje certyfikat dla domen podpiętych do serwera:



Od tej chwili serwer używa wyłącznie HTTPS — wejście po HTTP przekieruje na HTTPS, bo certbot dopisał odpowiednie reguły Rewrite do plików konfiguracyjnych:


Na koniec włączamy automatyczne odnawianie certyfikatu — zgodnie z informacją poinstalacyjną dopisujemy do konfiguracji systemu:
sysrc weekly_certbot_enable="YES"We wcześniejszych wersjach klienta do odnawiania używałem
crontab— nowy mechanizm warto zweryfikować po ~3 miesiącach (przed wygaśnięciem certyfikatu).
Instalacja PHP
PHP potrzebne jest do paneli webowych. Instalujemy je wraz z modułem do Apache:
pkg install php74 mod_php74mod_php74 to moduł PHP dla Apache i tak go skonfigurujemy. Alternatywnie PHP można zintegrować przez FastCGI Process Manager (FPM). Pozostałe rozszerzenia PHP doinstalujemy razem z konkretnymi aplikacjami.


Po instalacji dopisujemy do konfiguracji Apache obsługę plików *.php, aby były wykonywane przez PHP:


Co dalej
W części 4 instalujemy MySQL, panel phpMyAdmin oraz tworzymy tabele bazy danych obsługujące domeny i skrzynki systemu pocztowego.