FreeBSD 12 und apache im jail

echo "a.b.c.d  wwwhost.guckux.test wwwhost" >> /etc/hosts
iocage create -r 12.1-RELEASE -n www ip4_addr="em0|192.168.178.44"

Erzeugen eines host-Eintrages für den jail.
Erstellen eines jails mit FreeBSD 12.1-RELEASE, mit dem jail-Namen „www“ und einer IP-Adresse gehörig zum interface em0.

iocage start www

Starten des jails „www“.

iocage pkg www install apache24
alternativ:
iocage console www
pkg install apache24
echo "apache24_enable="YES"" >> /etc/rc.conf

Hiermit installieren wir mit dem package tool das apache environment in der iocage „www“.
Alternativ kann man das im jail selbst tun, ich bevorzuge die Installation vom „Hypervisor“ System selbst, da dann Pakete zB für andere jails nicht wiederholt geholt werden (ausser es gibt aktuellere 😀 ). Aktuell bei mir allerdings, wird die Anzeige, zur Bestätigung, ob man die Pakete installieren möchte, nicht angezeigt – heisst blind „Y“ tippen und Enter 😉
Dann muss er noch enabled werden, damit er startet, wenn man den jail startet.

Dann machen wir es gleich richtig machen und wollen das mit SSL konfigurieren:

iocage console www
mkdir /etc/ssl/private
mkdir /etc/ssl/certs
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt

Die Verzeichnisse gibt es noch nicht, werden aber benötigt – danach generieren wir den key und werden nach verschiedenen Parameter gefragt:

Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Hessen
Locality Name (eg, city) []:Gross-Gerau
Organization Name (eg, company) [Internet Widgits Pty Ltd]:guckux.de
Organizational Unit Name (eg, section) []:testing
Common Name (e.g. server FQDN or YOUR name) []:wwwhost.guckux.test
vi /usr/local/etc/apache24/httpd.conf
und
LoadModule ssl_module libexec/apache24/mod_ssl.so
LoadModule authn_socache_module libexec/apache24/mod_authn_socache.so
LoadModule ssl_module libexec/apache24/mod_ssl.so
Include etc/apache24/extra/httpd-ssl.conf

Die LoadModule einkommentieren (aktivieren) und das ssl aktivieren.

Wir erstellen eine Sicherheitskopie von der ssl Konfiguration und bearbeiten unsere config:

cp /usr/local/etc/apache24/extra/httpd-ssl.conf \ /usr/local/etc/apache24/extra/httpd-ssl.conf.bak
vi /usr/local/etc/apache24/extra/httpd-ssl.conf
# General setup for the virtual host
DocumentRoot "/usr/local/www/apache24/data"
ServerName wwwhost.guckux.test:443
ServerAdmin user@host
ErrorLog "/var/log/httpd-error.log"
TransferLog "/var/log/httpd-access.log"
ServerName wwwhost.guckux.test:443
ServerAdmin user@host
SSLCertificateFile "/etc/ssl/certs/selfsigned.crt"
SSLCertificateKeyFile "/etc/ssl/private/selfsigned.key"
SSLStaplingCache "shmcb:/var/run/ssl_stapling(32768)"
SSLSessionCache         "dbm:/var/run/ssl_scache"
und die Änderungen im https-ssl.conf vornehmen.

Wenn ich nichts vergessen habe - sollte es das gewesen sein ;)