3.4 Linux gradnja (WSL)

Ta navodila prikazujejo, kako prevesti OpenSSL pod Linuxom v WSL.


Kdaj potrebujem Linux gradnjo?

Aplikacija Linux gradnja potrebna?
————————————-
Docker vsebniki Da
Linux strežnik Da
.NET na Windows Ne (uporabi Windows gradnjo)
WASM/Blazor Ločeno (glejte WASM gradnjo)

Predpogoji

  • ☑ WSL2 z Ubuntu 22.04 ali Fedora
  • ☑ Nameščena orodja za gradnjo

Nastavitev WSL


Koraki gradnje

Korak 1: Odprite WSL

# Windows Terminal ali PowerShell
wsl

Korak 2: Namestitev odvisnosti za gradnjo

Ubuntu/Debian:

sudo apt update
sudo apt install -y build-essential perl nasm git

Fedora:

sudo dnf install -y gcc make perl nasm git

Korak 3: Prehod v imenik z izvorno kodo

# Windows diski so priklopljeni pod /mnt/
cd /mnt/d/Projects/openssl-3.6.0/src

Korak 4: Konfiguracija

./Configure linux-x86_64 \
    --prefix=/mnt/d/Projects/openssl-3.6.0/linux-build \
    --openssldir=/mnt/d/Projects/openssl-3.6.0/linux-build/ssl

Ali s FIPS:

./Configure linux-x86_64 enable-fips \
    --prefix=/mnt/d/Projects/openssl-3.6.0/linux-build \
    --openssldir=/mnt/d/Projects/openssl-3.6.0/linux-build/ssl

Korak 5: Prevajanje

# Gradnja z vsemi procesorskimi jedri
make -j$(nproc)

$(nproc) vrne število procesorskih jeder. Na 8-jedrnem procesorju: make -j8

Korak 6: Namestitev

make install

Rezultat

linux-build/
├── bin/
│   └── openssl                # CLI orodje
├── include/
│   └── openssl/               # Glave
├── lib64/
│   ├── libcrypto.so.3         # Shared Library
│   ├── libssl.so.3
│   ├── libcrypto.a            # Static Library
│   └── libssl.a
└── ssl/
    └── openssl.cnf

Testiranje

# Preverjanje različice
/mnt/d/Projects/openssl-3.6.0/linux-build/bin/openssl version -a
 
# Preverjanje Post-Quantum algoritmov
/mnt/d/Projects/openssl-3.6.0/linux-build/bin/openssl list -signature-algorithms | grep -i mldsa

Za Docker slike

Primer Dockerfile

FROM ubuntu:22.04 AS builder
 
# Namestitev orodij za gradnjo
RUN apt-get update && apt-get install -y \
    build-essential perl nasm git
 
# Kopiranje OpenSSL virov
COPY openssl-src/ /build/src/
 
# Gradnja
WORKDIR /build/src
RUN ./Configure linux-x86_64 --prefix=/opt/openssl && \
    make -j$(nproc) && \
    make install
 
# Runtime slika
FROM ubuntu:22.04
 
# Kopiranje samo končnih binarnih datotek
COPY --from=builder /opt/openssl /opt/openssl
 
# Nastavitev poti
ENV PATH="/opt/openssl/bin:$PATH"
ENV LD_LIBRARY_PATH="/opt/openssl/lib64:$LD_LIBRARY_PATH"

Multi-Stage Build za .NET

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
 
# Kopiranje OpenSSL knjižnic
COPY --from=openssl-builder /opt/openssl/lib64/libcrypto.so.3 /app/
COPY --from=openssl-builder /opt/openssl/lib64/libssl.so.3 /app/
 
WORKDIR /src
COPY . .
RUN dotnet build -c Release

Nasveti za WSL

Izboljšanje zmogljivosti

# Delo v Linux datotečnem sistemu je hitrejše
# Kopirajte vire v ~/openssl namesto /mnt/...
 
cp -r /mnt/d/Projects/openssl-3.6.0/src ~/openssl-src
cd ~/openssl-src
./Configure linux-x86_64 --prefix=~/openssl-build
make -j$(nproc)

Kopiranje rezultatov v Windows

# Po gradnji kopirajte nazaj
cp -r ~/openssl-build/* /mnt/d/Projects/openssl-3.6.0/linux-build/

Naprej na


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

Zuletzt geändert: dne 15.12.2025 ob 21:22