Das einfachste Puppet Setup überhaupt und sowieso [Ruby Edition]

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.

Self signed SSL certificate with Nginx in a Vagrant box

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!

instagram

instagram

instagram