6.1 File-Share

Die einfachste Methode zur Verteilung: Ein Netzlaufwerk.


Warum File-Share?

Vorteile:

  • ✓ Kein zusätzlicher Server nötig
  • ✓ Schnell eingerichtet
  • ✓ Berechtigungen über Windows-ACLs
  • ✓ Jeder kennt sich mit Ordnern aus

Nachteile:

  • ✗ Keine automatische Versionierung
  • ✗ Kein Dependency-Management
  • ✗ Manuelles Kopieren nötig

Verzeichnisstruktur

Eine empfohlene Struktur für den Share:

\\server\builds\openssl\
├── 3.6.0\
│   ├── win-x64\
│   │   ├── bin\
│   │   │   ├── libcrypto-3-x64.dll
│   │   │   ├── libssl-3-x64.dll
│   │   │   └── openssl.exe
│   │   ├── ssl\
│   │   │   └── openssl.cnf
│   │   └── README.txt
│   ├── win-x64-fips\
│   │   └── ... (mit FIPS Provider)
│   ├── linux-x64\
│   │   └── ... (Shared Objects)
│   └── wasm\
│       └── ... (JS + WASM)
├── 3.5.0\
│   └── ... (ältere Version)
└── latest -> 3.6.0\

Share einrichten

1. Ordner erstellen

# Auf dem Server
mkdir D:\Builds\OpenSSL
mkdir D:\Builds\OpenSSL\3.6.0
mkdir D:\Builds\OpenSSL\3.6.0\win-x64

2. Dateien kopieren

# Build-Ergebnis kopieren
Copy-Item -Recurse "D:\Projects\openssl-3.6.0\bin\*" "D:\Builds\OpenSSL\3.6.0\win-x64\"

3. Share erstellen

# Als Administrator
New-SmbShare -Name "OpenSSL" -Path "D:\Builds\OpenSSL" -ReadAccess "Domain Users"

Oder über GUI:

  1. Rechtsklick auf Ordner
  2. Eigenschaften → Freigabe
  3. Erweiterte Freigabe → Berechtigungen

Verwendung

Von Entwickler-PC

# Auf Share zugreifen
dir \\server\openssl\3.6.0\win-x64\bin\
 
# In Projekt kopieren
copy "\\server\openssl\3.6.0\win-x64\bin\*.dll" C:\MeinProjekt\

Als Laufwerk einbinden

# Dauerhaft als O: (für OpenSSL)
net use O: \\server\openssl /persistent:yes
 
# Dann einfach:
copy O:\3.6.0\win-x64\bin\*.dll C:\MeinProjekt\

Berechtigungen

Gruppe Berechtigung
——–————–
Build-Server Vollzugriff (schreiben neue Builds)
Entwickler Lesen (DLLs kopieren)
CI/CD Agents Lesen

PowerShell

# Berechtigungen setzen (NTFS)
$acl = Get-Acl "D:\Builds\OpenSSL"
 
# Entwickler: Nur Lesen
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "DOMAIN\Developers", "ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
 
# Build-Account: Vollzugriff
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "DOMAIN\BuildService", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
 
Set-Acl "D:\Builds\OpenSSL" $acl

Für einfachen Zugriff auf die aktuelle Version:

# Junction erstellen (wie Symlink)
cmd /c mklink /J "D:\Builds\OpenSSL\latest" "D:\Builds\OpenSSL\3.6.0"
 
# Dann funktioniert:
# \\server\openssl\latest\win-x64\...

Bei neuer Version den Symlink aktualisieren!


Automatisierung

Ein PowerShell-Skript für neue Releases:

# publish-openssl.ps1
 
param(
    [string]$Version = "3.6.0",
    [string]$SourceDir = "D:\Projects\openssl-3.6.0\bin",
    [string]$SharePath = "\\server\openssl"
)
 
$TargetDir = "$SharePath\$Version\win-x64"
 
# Ordner erstellen falls nicht vorhanden
if (!(Test-Path $TargetDir)) {
    New-Item -ItemType Directory -Path $TargetDir -Force
}
 
# Dateien kopieren
Copy-Item -Recurse -Force "$SourceDir\*" $TargetDir
 
# README hinzufügen
@"
OpenSSL $Version
================
Build-Datum: $(Get-Date -Format 'yyyy-MM-dd HH:mm')
Plattform: Windows x64 (VC-WIN64A)
 
Enthält:
- libcrypto-3-x64.dll
- libssl-3-x64.dll
- openssl.exe
 
Post-Quantum: ML-DSA, ML-KEM
"@ | Out-File "$TargetDir\README.txt"
 
Write-Host "Veröffentlicht: $TargetDir"

Weiter zu


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

Zuletzt geändert: den 29.01.2026 um 15:14