2.1 Clone GitHub Repository

This page explains how to download OpenSSL source code from GitHub.


What is Git?

Git is a version control system. It stores:

  • All versions of a project
  • Who changed what and when
  • „Tags“ for important versions (e.g. v3.6.0)

GitHub is a website that hosts Git repositories.


Prepare Project Structure

First we create a sensible folder structure:

# Create main folder
mkdir D:\Projects\openssl-3.6.0
 
# Create subfolders
mkdir D:\Projects\openssl-3.6.0\src   # Source code goes here
mkdir D:\Projects\openssl-3.6.0\bin   # Compiled files go here

Result:

D:\Projects\openssl-3.6.0\
├── src\    # OpenSSL source code (from GitHub)
└── bin\    # Target for compiled binaries

Clone OpenSSL

cd D:\Projects\openssl-3.6.0
git clone --depth 1 --branch openssl-3.6.0 https://github.com/openssl/openssl.git src

Explanation of parameters:

Parameter Meaning
———–———
–depth 1 Only latest version (saves ~500 MB!)
–branch openssl-3.6.0 The tag for version 3.6.0
src Target folder

Option B: Complete repository

If you want to try different versions:

cd D:\Projects\openssl-3.6.0
git clone https://github.com/openssl/openssl.git src
cd src
git checkout openssl-3.6.0

The complete repository is about 500 MB. With –depth 1 only ~50 MB.


List Available Tags

If you need a different version:

cd D:\Projects\openssl-3.6.0\src
 
# Show all tags
git tag | Select-String "openssl-3"
 
# Output (example):
# openssl-3.0.0
# openssl-3.0.1
# ...
# openssl-3.5.0
# openssl-3.6.0

Switch to Another Tag

cd D:\Projects\openssl-3.6.0\src
 
# Switch to another version
git checkout openssl-3.5.0
 
# Back to 3.6.0
git checkout openssl-3.6.0

Verify Version

cd D:\Projects\openssl-3.6.0\src
 
# Show current tag
git describe --tags
# Expected output: openssl-3.6.0
 
# Or: Show commit info
git log -1 --oneline

Update Source Code

If you have the complete repository and want to update:

cd D:\Projects\openssl-3.6.0\src
 
# Fetch latest changes
git fetch --all --tags
 
# Show new tags
git tag | Select-String "openssl-3.6"
 
# Switch to new tag (e.g. 3.6.1)
git checkout openssl-3.6.1

Common Problems

"git is not recognized"

Git is not installed or not in PATH:

winget install Git.Git

After installation: Open new terminal.

Firewall blocks GitHub

If you're behind a corporate firewall:

# Set proxy (if needed)
git config --global http.proxy http://proxy.company.com:8080
git config --global https.proxy http://proxy.company.com:8080

SSL Certificate Error

# Temporary: Disable SSL verification (not for production!)
git config --global http.sslVerify false

Download without Git (Alternative)

If Git is not available:

  1. Select version 3.6.0
  2. Download „Source code (zip)“
  3. Extract to D:\Projects\openssl-3.6.0\src

Disadvantage: No easy update possible!


Continue to


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: on 2026/01/29 at 09:17 PM