Nerdkrams
OpenS­SL unter Free­BSD durch LibreSSL erset­zen

(Vor­be­mer­kung: Dies ist nur eine kur­ze Anlei­tung, bei­na­he nur für eige­ne Zwecke; wenn sie für jeman­den von euch von Inter­es­se ist, ist das aller­dings erfreu­lich.)

Dass das histo­risch gewach­se­ne OpenS­SL vom Open­BSD-Team mit LibreSSL eine ent­rüm­pel­te Alter­na­ti­ve bekom­men hat, die nicht nur weni­ger Feh­ler, son­dern auch mehr Funk­tio­nen mit­bringt, haben die Medi­en, dar­un­ter hei­se online, ja bereits vor eini­ger Zeit ver­brei­tet. Am ver­gan­ge­nen Frei­tag ist Ver­si­on 2.0.0 erschie­nen, die erst­mals offi­zi­ell auch ande­re Betriebs­sy­ste­me als Open­BSD, dar­un­ter Free­BSD und Linux, unter­stützt. Für einen Ser­ver­be­trei­ber wie mich ist das natür­lich ein will­kom­me­ner Anlass, das mir doch mitt­ler­wei­le ziem­lich suspek­te OpenS­SL aus­zu­tau­schen.

Da ich auf Free­BSD-Ser­vern bevor­zugt mit Ports und dem Werk­zeug port­ma­ster arbei­te, beschränkt sich die­ser Aus­tausch nicht dar­auf, LibreSSL zu instal­lie­ren; auch alle Ports, die bis­lang OpenS­SL ver­wen­de­ten, müs­sen mit der neu­en Biblio­thek ver­traut gemacht wer­den, indem man sie neu kom­pi­liert.

Vor­aus­set­zung für das Fol­gen­de sind ein aktu­el­ler Ports-Tree (ports­nap fetch update) sowie das port­ma­ster-Werk­zeug. Mit die­sem geht das ziem­lich ein­fach. Da vie­le Ports nur nach opens­sl suchen, müs­sen wir dem System bei­brin­gen, dass es die­sen Port unter security/libressl fin­den kann (wir gau­keln ihm also vor, der Port von LibreSSL sei OpenS­SL):

portmaster -o security/libressl security/openssl

Anschlie­ßend kön­nen „OpenS­SL“ (also LibreSSL) und alle Ports, die es benut­zen, auto­ma­tisch neu erstellt wer­den:

portmaster -r libressl

Soll­ten wäh­rend­des­sen Feh­ler auf­tre­ten, weil zum Bei­spiel benö­tig­te Com­pi­ler nicht recht­zei­tig neu erstellt wer­den, so kann dies vor­ge­zo­gen wer­den; schlägt etwa cmake fehl, so genügt eine Neu­in­stal­la­ti­on:

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

Eigent­lich kann damit nichts schief­ge­hen. Über­prü­fen könnt ihr den Erfolg mit dem Befehl opens­sl ver­si­on. Zeigt die­ser noch immer das nor­ma­le OpenS­SL an, so liegt dies viel­leicht an unter­schied­li­chen Pfad­an­ga­ben von Open- und LibreSSL. Das ist ein lös­ba­res Pro­blem:

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

Das soll­te es gewe­sen sein.