12. Uvoz/Izvoz

Scenariji: 4
FFI funkcije: ~30
Status: ⏳ Načrtovano

Ta kategorija zajema vse scenarije za uvoz in izvoz certifikatov in ključev. PEM, PFX/PKCS#12, PKCS#7 in interoperabilnost z drugimi sistemi.


Scenariji

ID Scenarij Opis Kompleksnost Status
12.1 PEM izvoz/uvoz Base64 kodirani certifikati ⭐⭐
12.2 PFX/PKCS#12 Certifikat + zasebni ključ paket ⭐⭐⭐
12.3 PKCS#7 veriga Izvoz certifikatne verige ⭐⭐
12.4 Interoperabilnost OpenSSL, Windows, Java ⭐⭐⭐⭐

Formati

flowchart TB subgraph CERT["📜 Certifikati"] PEM_C[".crt.pem
Base64 + glava"] DER_C[".crt.der
Binarni DER"] end subgraph KEY["🔑 Ključi"] PEM_K[".key.pem
PKCS#8 Base64"] DER_K[".key.der
PKCS#8 binarni"] ENC_K[".key.enc.pem
Šifriran PKCS#8"] end subgraph BUNDLE["📦 Paketi"] PFX[".pfx / .p12
Cert + Key"] P7B[".p7b
Cert veriga"] end PEM_C <--> DER_C PEM_K <--> DER_K PEM_K <--> ENC_K PEM_C --> PFX PEM_K --> PFX PEM_C --> P7B style PFX fill:#e8f5e9 style P7B fill:#e3f2fd


Pregled formatov

Format Končnica Vsebuje Šifrirano Uporaba
PEM .pem, .crt, .key Posamezni objekti Opcijsko Linux, OpenSSL
DER .der, .cer Posamezni objekti Ne Binarni protokoli
PFX/PKCS#12 .pfx, .p12 Cert + Key + veriga Da Windows, Java
PKCS#7 .p7b, .p7c Certifikatna veriga Ne Distribucija verig
JKS .jks Java KeyStore Da Java aplikacije

Interoperabilnost

Od/Do OpenSSL Windows Java .NET
OpenSSL - PFX PKCS#7 → JKS PEM
Windows PFX → PEM - PFX PFX
Java JKS → PEM JKS → PFX - PFX
.NET PEM PFX PFX -

Hiter začetek s kodo

PEM izvoz

// Certifikat kot PEM
string certPem = certificate.ToPem();
File.WriteAllText("server.crt.pem", certPem);
 
// Zasebni ključ šifriran kot PEM
string keyPem = privateKey.ToEncryptedPem(
    password: securePassword,
    algorithm: EncryptionAlgorithm.Aes256Gcm
);
File.WriteAllText("server.key.pem", keyPem);

PFX/PKCS#12 izvoz

// Ustvarjanje PFX s certifikatom, ključem in verigo
byte[] pfxData = ctx.ExportToPfx(
    certificate: serverCert,
    privateKey: serverKey,
    chain: new[] { intermediateCert, rootCert },
    password: pfxPassword,
    friendlyName: "Server Certificate"
);
 
File.WriteAllBytes("server.pfx", pfxData);

PFX uvoz

// Nalaganje PFX
var (cert, key, chain) = ctx.ImportFromPfx(
    pfxPath: "server.pfx",
    password: pfxPassword
);
 
Console.WriteLine($"Certifikat: {cert.Subject}");
Console.WriteLine($"Dolžina verige: {chain.Length}");

PKCS#7 izvoz verige

// Certifikatna veriga kot P7B
byte[] p7bData = ctx.ExportChainToPkcs7(
    certificates: new[] { serverCert, intermediateCert, rootCert }
);
 
File.WriteAllBytes("chain.p7b", p7bData);

OpenSSL ukazi

PEM → PFX

openssl pkcs12 -export \
  -in server.crt.pem \
  -inkey server.key.pem \
  -certfile chain.pem \
  -out server.pfx \
  -name "Server Certificate"

PFX → PEM

# Ekstrakcija certifikata
openssl pkcs12 -in server.pfx -clcerts -nokeys -out server.crt.pem
 
# Ekstrakcija zasebnega ključa
openssl pkcs12 -in server.pfx -nocerts -out server.key.pem
 
# Ekstrakcija verige
openssl pkcs12 -in server.pfx -cacerts -nokeys -out chain.pem

DER → PEM

openssl x509 -in cert.der -inform DER -out cert.pem -outform PEM

Povezane kategorije

Kategorija Povezava
11. Upravljanje ključev Izvoz ključev
4. Upravljanje certifikatov Varnostna kopija/obnova
10. TLS/mTLS Namestitev certifikatov

« ← 11. Upravljanje ključev | ↑ Scenariji | 🏠 Začetna stran → »


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