Bei meiner Arbeit habe ich einen noch einfacheren (und möglicherweise besseren)
Weg gefunden um Puppet zu installieren. Der Vorteil ist, das man hier die aktuelle
Version von Puppet, Facter und Hiera bekommt und am Ende nicht mehr Pakete
installiert hat. Bei der Puppet-Installation über Apt wurde so oder so auch ein
Ruby mitinstalliert.
sudo apt-get install ruby rubygems
sudo gem install puppet facter hiera --no-ri --no-rdoc
Auch wenn die Ruby-Version relativ alt ist, kann man sie gut zum Puppet bootstrappen
benutzen und dann ein neues Ruby per Manifest nachinstallieren.
Peace out.
Es hat mich eine Weile gekostet, bis ich für dieses Problem eine Lösung gefunden hatte.
Dabei habe ich sehr lang an der falschen Stelle gesucht. Ich dachte, ich habe
die Zertifikate nicht richtig erstellt, stattdessen war Vagrant nicht korrekt
konfiguriert.
ACHTUNG: Selbst signierte Zertifikate nur für die Entwicklung einsetzen!
Selbstsigniertes passwortloses Zertifikat erstellen
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Kommandos aus diesem Blogpost. Dort gibt es auch eine genauere Erklärung. Nginx dann so konfigurieren,
dass diese Zertifikate benutzt werden.
Vagrant konfigurieren
Das ist der wichtige Part. Mit einfacher Portweiterleitung geht es nicht, weil
man den SSL Port 443 des Gastsystems auf einen anderen Port des Hostsystems
weiterleiten müsste. Damit kommen aber die Browser nicht klar und werfen folgende
Fehlermeldung:
Chrome / Chromium
SSL-Verbindungsfehler
Es kann keine sichere Verbindung zum Server hergestellt werden.
Möglicherweise liegt ein Problem mit dem Server vor oder es ist ein
Client-Authentifizierungszertifikat erforderlich, das Sie nicht haben.
Fehler 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL-Protokollfehler
Firefox
Fehler: Gesicherte Verbindung fehlgeschlagen
Ein Fehler ist während einer Verbindung mit local.gigmit.com:8080 aufgetreten.
SSL hat einen Eintrag erhalten, der die maximal erlaubte Länge überschritten hat.
(Fehlercode: ssl_error_rx_record_too_long)
Stattdessen alle Portweiterleitungen aus der Vagrantfile entfernen und ein
privates Netzwerk benutzen. (Vagrant Docs)
Vagrant.configure('2') do |config|
# ...
config.vm.network :private_network, ip: '172.31.172.172'
# ...
end
Die IP Adresse kann frei gewählt sein, sollte aber eine aus dem für private Zwecke
reservierten Bereich sein. (Wikipedia)
Eure /etc/hosts
Datei anpassen und die gewählte IP eintragen, z.B. so
172.31.172.172 local.mycompany.dev
Die Box mit dieser Einstellung (neu)starten und der Browser sollte euch korrekt
auf ein unsigniertes Zertifikat hinweisen, wenn ihr https://local.mycompany.dev
ansurft. Yeah!