6.1 File-Share

Il metodo più semplice per la distribuzione: un'unità di rete.


Perché File-Share?

Vantaggi:

  • ✓ Nessun server aggiuntivo necessario
  • ✓ Configurazione rapida
  • ✓ Permessi tramite ACL Windows
  • ✓ Tutti sanno usare le cartelle

Svantaggi:

  • ✗ Nessun versionamento automatico
  • ✗ Nessuna gestione dipendenze
  • ✗ Necessaria copia manuale

Struttura Directory

Una struttura consigliata per la condivisione:

\\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\
│   │   └── ... (con Provider FIPS)
│   ├── linux-x64\
│   │   └── ... (Shared Objects)
│   └── wasm\
│       └── ... (JS + WASM)
├── 3.5.0\
│   └── ... (versione precedente)
└── latest -> 3.6.0\

Configurare la Condivisione

1. Creare la Cartella

# Sul server
mkdir D:\Builds\OpenSSL
mkdir D:\Builds\OpenSSL\3.6.0
mkdir D:\Builds\OpenSSL\3.6.0\win-x64

2. Copiare i File

# Copiare risultato build
Copy-Item -Recurse "D:\Projects\openssl-3.6.0\bin\*" "D:\Builds\OpenSSL\3.6.0\win-x64\"

3. Creare la Condivisione

# Come Amministratore
New-SmbShare -Name "OpenSSL" -Path "D:\Builds\OpenSSL" -ReadAccess "Domain Users"

Oppure tramite GUI:

  1. Click destro sulla cartella
  2. Proprietà → Condivisione
  3. Condivisione avanzata → Autorizzazioni

Utilizzo

Dal PC dello Sviluppatore

# Accedere alla condivisione
dir \\server\openssl\3.6.0\win-x64\bin\
 
# Copiare nel progetto
copy "\\server\openssl\3.6.0\win-x64\bin\*.dll" C:\MioProjetto\

Mappare come Unità

# Permanentemente come O: (per OpenSSL)
net use O: \\server\openssl /persistent:yes
 
# Poi semplicemente:
copy O:\3.6.0\win-x64\bin\*.dll C:\MioProjetto\

Autorizzazioni

Gruppo Autorizzazione
——–—————-
Build-Server Controllo completo (scrive nuovi build)
Sviluppatori Lettura (copiare DLL)
Agenti CI/CD Lettura

PowerShell

# Impostare autorizzazioni (NTFS)
$acl = Get-Acl "D:\Builds\OpenSSL"
 
# Sviluppatori: Solo lettura
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "DOMAIN\Developers", "ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
 
# Account Build: Controllo completo
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
    "DOMAIN\BuildService", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
 
Set-Acl "D:\Builds\OpenSSL" $acl

Per accesso semplice alla versione corrente:

# Creare junction (come symlink)
cmd /c mklink /J "D:\Builds\OpenSSL\latest" "D:\Builds\OpenSSL\3.6.0"
 
# Poi funziona:
# \\server\openssl\latest\win-x64\...

Con una nuova versione aggiornare il symlink!


Automazione

Uno script PowerShell per nuovi rilasci:

# 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"
 
# Creare cartella se non esiste
if (!(Test-Path $TargetDir)) {
    New-Item -ItemType Directory -Path $TargetDir -Force
}
 
# Copiare i file
Copy-Item -Recurse -Force "$SourceDir\*" $TargetDir
 
# Aggiungere README
@"
OpenSSL $Version
================
Data build: $(Get-Date -Format 'yyyy-MM-dd HH:mm')
Piattaforma: Windows x64 (VC-WIN64A)
 
Contiene:
- libcrypto-3-x64.dll
- libssl-3-x64.dll
- openssl.exe
 
Post-Quantum: ML-DSA, ML-KEM
"@ | Out-File "$TargetDir\README.txt"
 
Write-Host "Pubblicato: $TargetDir"

Continua con


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

Zuletzt geändert: il 29/01/2026 alle 21:39