Nerdkrams
OpenSSL unter FreeBSD durch LibreSSL ersetzen

(Vorbe­merkung: Dies ist nur eine kurze Anleitung, beina­he nur für eigene Zwecke; wenn sie für jeman­den von euch von Inter­esse ist, ist das allerd­ings erfreulich.)

Dass das his­torisch gewach­sene OpenSSL vom OpenB­SD-Team mit LibreSSL eine entrüm­pelte Alter­na­tive bekom­men hat, die nicht nur weniger Fehler, son­dern auch mehr Funk­tio­nen mit­bringt, haben die Medi­en, darunter heise online, ja bere­its vor einiger Zeit ver­bre­it­et. Am ver­gan­genen Fre­itag ist Ver­sion 2.0.0 erschienen, die erst­mals offiziell auch andere Betrieb­ssys­teme als OpenB­SD, darunter FreeB­SD und Lin­ux, unter­stützt. Für einen Server­be­treiber wie mich ist das natür­lich ein willkommen­er Anlass, das mir doch mit­tler­weile ziem­lich sus­pek­te OpenSSL auszu­tauschen.

Da ich auf FreeB­SD-Servern bevorzugt mit Ports und dem Werkzeug port­mas­ter arbeite, beschränkt sich dieser Aus­tausch nicht darauf, LibreSSL zu instal­lieren; auch alle Ports, die bis­lang OpenSSL ver­wen­de­ten, müssen mit der neuen Bib­lio­thek ver­traut gemacht wer­den, indem man sie neu kom­piliert.

Voraus­set­zung für das Fol­gende sind ein aktueller Ports-Tree (port­snap fetch update) sowie das port­mas­ter-Werkzeug. Mit diesem geht das ziem­lich ein­fach. Da viele Ports nur nach openssl suchen, müssen wir dem Sys­tem beib­rin­gen, dass es diesen Port unter security/libressl find­en kann (wir gaukeln ihm also vor, der Port von LibreSSL sei OpenSSL):

portmaster -o security/libressl security/openssl

Anschließend kön­nen “OpenSSL” (also LibreSSL) und alle Ports, die es benutzen, automa­tisch neu erstellt wer­den:

portmaster -r libressl

Soll­ten während­dessen Fehler auftreten, weil zum Beispiel benötigte Com­pil­er nicht rechtzeit­ig neu erstellt wer­den, so kann dies vorge­zo­gen wer­den; schlägt etwa cmake fehl, so genügt eine Neuin­stal­la­tion:

cd /usr/ports/devel/cmake ; make reinstall clean
portmaster -r libressl

Eigentlich kann damit nichts schiefge­hen. Über­prüfen kön­nt ihr den Erfolg mit dem Befehl openssl ver­sion. Zeigt dieser noch immer das nor­male OpenSSL an, so liegt dies vielle­icht an unter­schiedlichen Pfadangaben von Open- und LibreSSL. Das ist ein lös­bares Prob­lem:

cd /usr/bin
mv openssl openssl.orig
ln -s /usr/local/bin/openssl

Das sollte es gewe­sen sein.