Obiettivo#
Simulare il ciclo di vita completo di un certificato digitale replicando esattamente quello che succede nella realtà: una CA firma un certificato server, il client verifica la chain of trust contro il trust store.
Ambiente#
Kali (192.168.64.200) → CA (simula DigiCert / Let's Encrypt)
Ubuntu (192.168.64.3) → Server web (simula google.com)
Kali (client) → Browser (verifica la chain)Flusso#
1. Kali genera Root CA (chiave + certificato auto-firmato)
2. Aggiungiamo Root CA cert al trust store di Kali (/etc/ssl/certs/)
3. Ubuntu genera private key + CSR
4. Ubuntu manda CSR a Kali (scp)
5. Kali firma il CSR → restituisce il certificato
6. Ubuntu installa cert su nginx
7. openssl s_client da Kali → verifica chain → OKConcetti collegati (cap-10)#
- Root CA e chain of trust
- CSR (Certificate Signing Request)
- Trust store
/etc/ssl/certs/ openssl s_clientper ispezione certificato- Differenza private key (vive sul server) vs certificato (distribuito)
TODO#
- Step 1 — Kali: genera Root CA
- Step 2 — Kali: aggiungi Root CA al trust store
- Step 3 — Ubuntu: genera private key + CSR
- Step 4 — trasferisci CSR a Kali (scp)
- Step 5 — Kali: firma il CSR
- Step 6 — Ubuntu: installa cert su nginx
- Step 7 — Kali: verifica con
openssl s_client - Step 8 — confronta con Let's Encrypt (cosa fa certbot in automatico)
Note#
Quando hai Hetzner VPS: ripetere il lab con certbot --nginx per vedere lo stesso flusso in automatico con una CA reale.




