====== 2.1 GitHub Repository klonen ======
Diese Seite erklärt, wie Sie den OpenSSL Quellcode von GitHub herunterladen.
----
===== Was ist Git? =====
**Git** ist ein Versionskontrollsystem. Es speichert:
* Alle Versionen eines Projekts
* Wer was wann geändert hat
* "Tags" für wichtige Versionen (z.B. v3.6.0)
**GitHub** ist eine Website, die Git-Repositories hostet.
----
===== Projektstruktur vorbereiten =====
Zuerst erstellen wir eine sinnvolle Ordnerstruktur:
# Hauptordner erstellen
mkdir D:\Projects\openssl-3.6.0
# Unterordner erstellen
mkdir D:\Projects\openssl-3.6.0\src # Hier kommt der Quellcode
mkdir D:\Projects\openssl-3.6.0\bin # Hier kommen die kompilierten Dateien
Ergebnis:
D:\Projects\openssl-3.6.0\
├── src\ # OpenSSL Quellcode (von GitHub)
└── bin\ # Ziel für kompilierte Binaries
----
===== OpenSSL klonen =====
==== Option A: Nur Tag v3.6.0 (empfohlen) ====
cd D:\Projects\openssl-3.6.0
git clone --depth 1 --branch openssl-3.6.0 https://github.com/openssl/openssl.git src
**Erklärung der Parameter:**
| Parameter | Bedeutung |
|-----------|-----------|
| ''--depth 1'' | Nur die neueste Version (spart ~500 MB!) |
| ''--branch openssl-3.6.0'' | Der Tag für Version 3.6.0 |
| ''src'' | Zielordner |
==== Option B: Komplettes Repository ====
Falls Sie verschiedene Versionen ausprobieren möchten:
cd D:\Projects\openssl-3.6.0
git clone https://github.com/openssl/openssl.git src
cd src
git checkout openssl-3.6.0
Das komplette Repository ist ca. 500 MB groß. Mit ''--depth 1'' nur ~50 MB.
----
===== Verfügbare Tags auflisten =====
Falls Sie eine andere Version benötigen:
cd D:\Projects\openssl-3.6.0\src
# Alle Tags anzeigen
git tag | Select-String "openssl-3"
# Ausgabe (Beispiel):
# openssl-3.0.0
# openssl-3.0.1
# ...
# openssl-3.5.0
# openssl-3.6.0
----
===== Auf anderen Tag wechseln =====
cd D:\Projects\openssl-3.6.0\src
# Auf andere Version wechseln
git checkout openssl-3.5.0
# Zurück zu 3.6.0
git checkout openssl-3.6.0
----
===== Version überprüfen =====
cd D:\Projects\openssl-3.6.0\src
# Aktuellen Tag anzeigen
git describe --tags
# Erwartete Ausgabe: openssl-3.6.0
# Oder: Zeige Commit-Info
git log -1 --oneline
----
===== Quellcode aktualisieren =====
Falls Sie das komplette Repository haben und aktualisieren möchten:
cd D:\Projects\openssl-3.6.0\src
# Neueste Änderungen holen
git fetch --all --tags
# Neue Tags anzeigen
git tag | Select-String "openssl-3.6"
# Auf neuen Tag wechseln (z.B. 3.6.1)
git checkout openssl-3.6.1
----
===== Häufige Probleme =====
==== "git wird nicht erkannt" ====
Git ist nicht installiert oder nicht im PATH:
winget install Git.Git
Nach Installation: Neues Terminal öffnen.
==== Firewall blockiert GitHub ====
Falls Sie hinter einer Unternehmens-Firewall sind:
# Proxy setzen (falls nötig)
git config --global http.proxy http://proxy.firma.de:8080
git config --global https.proxy http://proxy.firma.de:8080
==== SSL-Zertifikatfehler ====
# Temporär: SSL-Prüfung deaktivieren (nicht für Produktion!)
git config --global http.sslVerify false
----
===== Download ohne Git (Alternative) =====
Falls Git nicht verfügbar ist:
- Gehen Sie zu [[https://github.com/openssl/openssl/releases]]
- Wählen Sie Version 3.6.0
- Laden Sie "Source code (zip)" herunter
- Entpacken Sie nach ''D:\Projects\openssl-3.6.0\src''
**Nachteil:** Keine einfache Aktualisierung möglich!
----
===== Weiter zu =====
* [[.:build:start|3. Build - Kompilieren]]
* [[.:quellen:verzeichnisstruktur|Verzeichnisstruktur verstehen]]
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//