====== 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 → [[wvds:sl:openssl:vorbereitung:wsl-einrichten|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 ===== * [[wvds:sl:openssl:vorbereitung:wsl-einrichten|Nastavitev WSL]] * [[wvds:sl:openssl:testen:start|4. Testiranje]] * [[wvds:sl:openssl:build:start|Nazaj na pregled gradnje]] ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//