Blog

Feb12

OpenSSL 3.5.5 LTS unter Snow Leopard installieren

aus dem Quellcode bauen

Ich setze voraus, dass Kommandozeilen-Tools von Xcode installiert sind.

Heute machen wir mal Snow Leopard "sicherer".
Ok, nicht wirklich, da das System größtenteils noch sein lang veraltetes OpenSSL 0.9.8y vom 5. Februar 2013 nutzt, anstatt auf das neue langzeit unterstützte OpenSSL 3.5.5 auszuweichen.
Doch so unsicher ist das System dann doch nicht. Erstens ist ein Rechner mit Snow Leopard hinter einem Router relativ sicher vor Angriffen auf OpenSSL, zweitens sind moderne Betriebssysteme vor Snow Leopard sicher, denn sie lehnen Zugriffe von hier einfach ab.

Laden wir also den Quellcode mit der Datei openssl-3.5.5.tar.gz von OpenSSL herunter: https://openssl-library.org/source/ und entpacken das Archiv. Weiter geht es ab nun im Terminal im Verzeichnis der entpackten Datei.

Im Gegensatz zu älteren Versionen, wie z.B. der 1.1.1w vom September 2023 oder 1.0.1u vom September 2016 braucht man in der aktuellen LTS-Version nicht das Zielsystem angeben, so dass ein einfaches ./Configure ausreicht - wirklich mit großem Anfangsbuchstaben.

So ziemlich alle Rechner, auf denen Snow Leopard läuft (außer dem MacMini1,1 mit Intel Core Solo 1,5 GHz oder Hackintoshes), haben zwei Kerne, so dass wir mit make -j2 den Prozess des Kompilierens starten. Normalerweise verzichte ich auf den Schalter -j, aber hier macht es aus Sinn, da der Prozess sehr zeitintensiv sein wird. Richtet Euch also auf eine lange Zeit ein, auf meinem MacBook1,1 mit 2 GHz dauerte es etwas weniger als eine Stunde (Update: ich glaube inzwischen eher, dass das die Zeit war, um OpenSSL 1.1.1w zu bauen), mein MacBook1,1 mit 1,83 GHz hingegen war drei bis vier Stunden beschäftigt. Wie dieser große Unterschied zustande kommt, weiß ich nicht. Beide Geräte waren ohne Akku ausgestattet, arbeiteten also beide etwas gedrosselt. Nun schreibe ich an meinem Ur-MacBook1,1 mit 1,83 GHz mit funktionierendem Akku und werde mal schauen, wie lange dieses brauchen wird.

Mit sudo make install wird OpenSSL 3.5.5 in /usr/local/ssl und /usr/local/lib installiert, was im Gegensatz zu den meisten anderen Projekten ebenfalls sehr lange dauert.

Zertifikate aktualisieren

Um nun wirklich etwas damit anfangen zu können, benötigt OpenSSL 3.5.5 auch neuere Zertifikate als die teilweise längst abgelaufenen, in Snow Leopard installieren. Der einfachste Weg ist - und jetzt aufmerksam lesen - diese beim Hersteller des Befehlzeilen-Tools curl herunterzuladen und diese in das Zertifikatsverzeichnis von OpenSSL zu kopieren.
Da Ihr mir vertrauen könnt, gebe ich Euch den direkten Link zur Download-Seite der benötigten Datei cacert.pem: https://curl.se/docs/caextract.html. Da Ihr aber hier einen Blog lest, der möglicherweise von Dritten manipuliert sein könnte, schaut bitte genau hin, was Ihr da herunterladet und ob es wirklich die Adresse von curl ist. Es geht hier schließlich um nichts weniger als die Zertifikate für alle vertrauenswürdigen Zertifizierungsstellen des modernen Internet und wir wollen auf keinen Fall, dass sich nicht-vertrauenswürdige Stellen in dieser Datei befinden.
Mit dem Befehl sudo cp cacert.pem /usr/local/ssl/cert.pem und/oder sudo cp cacert.pem /usr/local/ssl/certs/cert.pem nutzt OpenSSL 3.5.5 die neuen Zertifikate (ersterer Befehl reicht aus).

Was fangen wir damit an?

Der Grund, warum ich OpenSSL überhaupt unter Snow Leopard bauen wollte, war, dass ich PIP in Python3 zum Laufen bringen wollte, um für ein anderes Open-Source-Programm Abhängigkeiten installieren zu können. PIP scheiterte jedoch an abgelaufenen Zertifikaten und konnte keine Verbindung zu https-Quellen herstellen - ein sehr häufig auftretendes Problem in veralteten Systemen wie Snow Leopard. Also installieren wir doch auch gleich nebenbei noch Python3.
Ich wähle Python 3.10.19 vom 9. Oktober 2025: https://www.python.org/downloads/release/python-31019/
Wir entpacken es, doch haben machen wir erst einmal Python die neue OpenSSL-Version bekannt. Dazu öffnen wir die Datei Modules/Setup. Hier suchen wir nach Einträgen, die was mit SSL zu tun haben und ändern den Block # Socket module helper for socket(2)
#_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and edit the OPENSSL variable:
# OPENSSL=/path/to/openssl/directory
# _ssl _ssl.c \
#     -I$(OPENSSL)/include -L$(OPENSSL)/lib \
#     -lssl -lcrypto
#_hashlib _hashopenssl.c \
#     -I$(OPENSSL)/include -L$(OPENSSL)/lib \
#     -lcrypto
um in # Socket module helper for socket(2)
_socket socketmodule.c

# Socket module helper for SSL support; you must comment out the other
# socket line above, and edit the OPENSSL variable:
OPENSSL=/usr/local/ssl
_ssl _ssl.c \
     -I$(OPENSSL)/include -L/usr/local/lib \
     -lssl -lcrypto
_hashlib _hashopenssl.c \
     -I$(OPENSSL)/include -L/usr/local/lib \
     -lcrypto
und speichern die Datei ab.
Endlich starten den ganzen Prozess mit ./configure
make
make install
, was weniger eine Stunde dauern sollte.

... und weiter?

Probieren wir doch mal das neue Python 3.10 mit OpenSSL 3.5.5 und den neuen Zertifikaten gleich aus:
yt-dlp, ein in Python geschriebenes Kommandozeilenprogramm mit HTTPS-Unterstützung, fällt mir auf die Schnelle als einziges Programm ein, welches Python 3.10 voraussetzt. Es baut naturgemäß eine https-Verbindung zur übergebenen URL auf, die mit bisherigen Versionen von OpenSSL und den alten Zertifikaten selbstverständlich abgelehnt wurden bzw. auf Grund modernerer Protokolle, z.B. TLS 1.3, gar nicht erst ausgehandelt werden konnten. Mit OpenSSL, den neuen Zertifikaten und Python 3.10 funktioniert es nun.
Richtig installiert wird es am besten ganz einfach mit sudo cp yt-dlp /usr/local/ ... Konkret testen wir es am besten gleich mit der eingebauten Update-Funktion, die eine Verbindung zu GitHub aufbaut, die nur mit funktionierendem SSL-Modul in Python, aktuell gültigen Zertifikaten und modernen Protokollen, die OpenSSL 3.5.5 mitbringt, funktioniert. Meldet sudo yt-dlp -U alles andere als ein rotes Error, funktioniert es nun genau so wie auf jedem anderen unterstützten System, z.B. Linux.

Fazit

Alte Systeme am Laufen zu halten, ist nicht nur unser Hobby, denn auch Apple hat soeben (Stand 12.02.2026) vier Jahre nach Support-Ende macOS Catalina 10.15.8 bzw. drei Jahre nach Support-Ende macOS Big Sur 11.7.11 veröffentlicht. Und passend zu diesem Artikel geht es laut Mr.Macintosh's Youtube-Video um eben die Aktualisierung abgelaufener Zertifikate in diesen älteren macOS-Versionen. Auch Monterey bekam zwei Jahre nach Support-Ende ein Update.

Tags: