SSL für lokale Dev Umgebung mit Docker
Nach meinen Erfahrungen macht ein nicht vertrauenswürdiges SSL Zertifikat gerne Ärger beim Debuggen oder beim arbeiten mit einem lokalen gitlab Docker.
Nach einigen Recherchen bin ich auf mkcert gestoßen. Dieses läßt sich auf dem Mac einfach über brew installieren.
brew install mkcert
# für Firefox noch nötig
brew install nss
mkcert install
Das Zertifikat wird mit
mkcert "*.l.test" docker.vm localhost 127.0.0.1 ::1
erstellt. *.l.test ist für lokale Projektadresssen die in /etc/hosts hinterlegt sein müssen. Das l in der Url steht für local und ist nötig da die meisten Browser Wildcard Zertifikate nur für die tld nicht akzeptieren. docker.vm ist enthalten da ich meist das php Docker Image von webdevops verwende. Ich denke der Rest ist klar ;-)
Es werden zwei Dateien nach diesem Schema erstellt:
_wildcard.example.org+4-key.pem
_wildcard.example.org+4.pem
Da ich für das Dockerimage zwei spezielle Dateien benötige hatte ich verschiedene Methoden getestet um die Zertifikate für mich nutzbar zu machen. Am Ende hat sich herausgestellt das simples umbenennenen ausreicht. Die *-key.pem habe ich in server.key und die andere in server.crt umbenannt. Diese beiden Dateien habe ich in meinem Docker Setup unter conf/*/ssl abgelegt. In der docker-compose.yml muss diese Zeile auskommentiert sein:
- ./conf/${PROVISION_CONTEXT}/ssl:/opt/docker/etc/httpd/ssl/
Nach einem 'make rebuild' sollte ein hübsches grünes Schloss zu sehen sein und es ein paar Probleme weniger geben. Die beiden server.* Dateien können in allen Dockern auf dem selben Rechner verwendet werden. Auf einem anderen Rechner müssen sie neu erstellt werden.
So sieht es doch gleich viel freundlicher aus ;-)