3.1 Windows x64 gradnja

Ta navodila vas korak za korakom vodijo skozi gradnjo OpenSSL za Windows 64-bit.


Predpogoji

Prepričajte se, da so vsa orodja nameščena:

  • ☑ Visual Studio 2022 s C++ delovnim bremenom
  • ☑ Strawberry Perl
  • ☑ NASM (priporočeno)
  • ☑ OpenSSL izvorna koda v D:\Projects\openssl-3.6.0\src

1. Priprava2. Viri


Možnost A: PowerShell skripta (priporočeno)

Skripta za gradnjo avtomatizira vse korake:

# Zagon gradnje (iz poljubnega imenika)
powershell.exe -ExecutionPolicy Bypass -File "D:\Projects\openssl-3.6.0\build_openssl.ps1"

Skripta:

  1. Naloži okolje Visual Studio
  2. Nastavi PATH za Perl in NASM
  3. Konfigurira OpenSSL
  4. Prevede kodo
  5. Namesti v D:\Projects\openssl-3.6.0\bin

→ Naprej na 4. Testiranje


Možnost B: Ročna gradnja

Če želite razumeti vsak korak:

Korak 1: Nalaganje okolja Visual Studio

Odprite navadno CMD (ne PowerShell!) in izvedite:

call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"

Kaj se tukaj zgodi?

vcvars64.bat nastavi pomembne okoljske spremenljivke:

  • PATH - Pot do cl.exe, link.exe, nmake.exe
  • INCLUDE - Pot do datotek glave
  • LIB - Pot do knjižnic

Preverjanje:

cl

Pričakovani izpis:

Microsoft (R) C/C++ Optimizing Compiler Version 19.xx.xxxxx for x64

Korak 2: Nastavitev PATH za Perl in NASM

set PATH=C:\Strawberry\perl\bin;%LOCALAPPDATA%\bin\NASM;%PATH%

Preverjanje:

perl -v
nasm -v

Korak 3: Prehod v imenik z izvorno kodo

cd /d D:\Projects\openssl-3.6.0\src

Korak 4: Konfiguracija OpenSSL

perl Configure VC-WIN64A --prefix=D:\Projects\openssl-3.6.0\bin --openssldir=D:\Projects\openssl-3.6.0\bin\ssl

Razlaga:

Parameter Pomen
———–——-
VC-WIN64A Visual C++, Windows 64-bit, AMD64 arhitektura
–prefix=… Kam se namestijo končne datoteke
–openssldir=… Kam se shranijo konfiguracijske datoteke

Izpis (primer):

Configuring OpenSSL version 3.6.0 for target VC-WIN64A
Using os-specific seed configuration
Creating configdata.pm
Running configdata.pm
Creating makefile

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   Configuration summary                                        ***
***                                                                ***
**********************************************************************

Korak 5: Prevajanje

nmake

Trajanje: 10-30 minut, odvisno od strojne opreme. Potrpljenje!

Kaj se zgodi?

  1. Perl generira C kodo iz predlog
  2. C prevajalnik prevede vse izvorne datoteke
  3. Povezovalnik ustvari DLL-je in EXE-je

Napake?Odpravljanje težav

Korak 6: Namestitev

nmake install_sw

install_sw namesti samo programsko opremo (brez dokumentacije). Za vse: nmake install


Rezultat

Po uspešni gradnji najdete v D:\Projects\openssl-3.6.0\bin:

bin\
├── bin\
│   ├── openssl.exe           # Orodje ukazne vrstice
│   ├── libcrypto-3-x64.dll   # Kriptografska knjižnica
│   └── libssl-3-x64.dll      # TLS knjižnica
├── include\
│   └── openssl\              # Glave za C/C++ razvoj
├── lib\
│   ├── libcrypto.lib         # Import knjižnica za povezovalnik
│   ├── libssl.lib
│   └── ossl-modules\         # Provider moduli (default, legacy)
└── ssl\
    └── openssl.cnf           # Konfiguracija OpenSSL

Hitro preverjanje

D:\Projects\openssl-3.6.0\bin\bin\openssl.exe version -a

Pričakovani izpis:

OpenSSL 3.6.0 11 Feb 2025 (Library: OpenSSL 3.6.0 11 Feb 2025)
built on: ...
platform: VC-WIN64A
options:  bn(64,64)
compiler: cl /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MD /W3 ...

Popolna PowerShell skripta

Če želite sami ustvariti skripto za gradnjo:

# build_openssl.ps1 - OpenSSL 3.6.0 Build Script
 
$ErrorActionPreference = "Stop"
 
Write-Host "========================================" -ForegroundColor Cyan
Write-Host "OpenSSL 3.6.0 Build Script" -ForegroundColor Cyan
Write-Host "========================================" -ForegroundColor Cyan
 
# Poti
$projectRoot = "D:\Projects\openssl-3.6.0"
$srcDir = "$projectRoot\src"
$binDir = "$projectRoot\bin"
$vsPath = "C:\Program Files\Microsoft Visual Studio\2022\Community"
$vcvarsPath = "$vsPath\VC\Auxiliary\Build\vcvars64.bat"
 
# Nalaganje okolja Visual Studio
Write-Host "`n[1/5] Nalagam okolje Visual Studio..." -ForegroundColor Yellow
 
$pinfo = New-Object System.Diagnostics.ProcessStartInfo
$pinfo.FileName = "cmd.exe"
$pinfo.RedirectStandardOutput = $true
$pinfo.UseShellExecute = $false
$pinfo.Arguments = "/c `"`"$vcvarsPath`" && set`""
 
$p = New-Object System.Diagnostics.Process
$p.StartInfo = $pinfo
$p.Start() | Out-Null
$output = $p.StandardOutput.ReadToEnd()
$p.WaitForExit()
 
$output -split "`r`n" | ForEach-Object {
    if ($_ -match "^([^=]+)=(.*)$") {
        [Environment]::SetEnvironmentVariable($matches[1], $matches[2], "Process")
    }
}
 
# Nastavitev PATH
Write-Host "[2/5] Nastavljam PATH za Perl in NASM..." -ForegroundColor Yellow
$env:PATH = "C:\Strawberry\perl\bin;$env:LOCALAPPDATA\bin\NASM;$env:PATH"
 
# Prehod v imenik z izvorno kodo
Set-Location $srcDir
 
# Brisanje starega Makefile
if (Test-Path "makefile") { Remove-Item "makefile" -Force }
 
# Konfiguracija
Write-Host "[3/5] Konfiguriram OpenSSL..." -ForegroundColor Yellow
& perl Configure VC-WIN64A --prefix=$binDir --openssldir=$binDir\ssl
if ($LASTEXITCODE -ne 0) { throw "Konfiguracija ni uspela!" }
 
# Prevajanje
Write-Host "[4/5] Prevajam OpenSSL..." -ForegroundColor Yellow
& nmake
if ($LASTEXITCODE -ne 0) { throw "nmake ni uspel!" }
 
# Namestitev
Write-Host "[5/5] Nameščam..." -ForegroundColor Yellow
& nmake install_sw
if ($LASTEXITCODE -ne 0) { throw "Namestitev ni uspela!" }
 
Write-Host "`n========================================" -ForegroundColor Green
Write-Host "GRADNJA USPEŠNA!" -ForegroundColor Green
Write-Host "Binarne datoteke v: $binDir" -ForegroundColor Green
Write-Host "========================================" -ForegroundColor Green

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