(Vorbemerkung: Dies ist nur eine kurze Anleitung, beinahe nur für eigene Zwecke; wenn sie für jemanden von euch von Interesse ist, ist das allerdings erfreulich.)
Dass das historisch gewachsene OpenSSL vom OpenBSD-Team mit LibreSSL eine entrümpelte Alternative bekommen hat, die nicht nur weniger Fehler, sondern auch mehr Funktionen mitbringt, haben die Medien, darunter heise online, ja bereits vor einiger Zeit verbreitet. Am vergangenen Freitag ist Version 2.0.0 erschienen, die erstmals offiziell auch andere Betriebssysteme als OpenBSD, darunter FreeBSD und Linux, unterstützt. Für einen Serverbetreiber wie mich ist das natürlich ein willkommener Anlass, das mir doch mittlerweile ziemlich suspekte OpenSSL auszutauschen.
Da ich auf FreeBSD-Servern bevorzugt mit Ports und dem Werkzeug portmaster arbeite, beschränkt sich dieser Austausch nicht darauf, LibreSSL zu installieren; auch alle Ports, die bislang OpenSSL verwendeten, müssen mit der neuen Bibliothek vertraut gemacht werden, indem man sie neu kompiliert.
Voraussetzung für das Folgende sind ein aktueller Ports-Tree (portsnap fetch update) sowie das portmaster-Werkzeug. Mit diesem geht das ziemlich einfach. Da viele Ports nur nach openssl suchen, müssen wir dem System beibringen, dass es diesen Port unter security/libressl finden kann (wir gaukeln ihm also vor, der Port von LibreSSL sei OpenSSL):
portmaster -o security/libressl security/openssl
Anschließend können “OpenSSL” (also LibreSSL) und alle Ports, die es benutzen, automatisch neu erstellt werden:
portmaster -r libressl
Sollten währenddessen Fehler auftreten, weil zum Beispiel benötigte Compiler nicht rechtzeitig neu erstellt werden, so kann dies vorgezogen werden; schlägt etwa cmake fehl, so genügt eine Neuinstallation:
cd /usr/ports/devel/cmake ; make reinstall clean portmaster -r libressl
Eigentlich kann damit nichts schiefgehen. Überprüfen könnt ihr den Erfolg mit dem Befehl openssl version. Zeigt dieser noch immer das normale OpenSSL an, so liegt dies vielleicht an unterschiedlichen Pfadangaben von Open- und LibreSSL. Das ist ein lösbares Problem:
cd /usr/bin mv openssl openssl.orig ln -s /usr/local/bin/openssl
Das sollte es gewesen sein.
