Guida: Installare Certificati SSL Personalizzati su IIS e Apache

Questa guida mostra come installare un certificato SSL personalizzato (con CA interna) su Windows IIS e Apache, rendendolo funzionante con lucchetto verde nei browser. Tutti i domini sono anonimizzati.

Prerequisiti

  • File ricevuti: dominio.esempio.it.crt (leaf + intermediate CA), dominio.esempio.it.key (chiave privata)
  • Accesso amministratore al server Windows
  • OpenSSL installato su Windows

1. Creare PFX per IIS (Windows)

Genera il bundle PFX completo:

bash
openssl pkcs12 -export -out certificato_completo.pfx -inkey dominio.esempio.it.key -in dominio.esempio.it.crt -certfile dominio.esempio.it.crt

Inserisci una password quando richiesto.

Importa in Windows Certificate Store:

  1. Doppio-clic su certificato_completo.pfx
  2. Installa Certificato → Computer locale → Personale → Fine
  3. Verifica: certlm.msc → Personale → Certificato con ✅ icona chiave

Configura IIS:

  1. Win+R → inetmgr
  2. Server → Certificati server → Certificato visibile
  3. Sito web → Binding → Aggiungi → https (porta 443) → Seleziona certificato
  4. iisreset

Test: https://dominio.esempio.it → 🔒 Lucchetto verde

2. Configura Apache (porta 444)

Copia i file nella cartella Apache:

text
C:\percorso\apache\conf\ssl\
├── dominio.esempio.it.crt (leaf + intermediate)
└── dominio.esempio.it.key (chiave privata)

Modifica httpd-ssl.conf (o file VirtualHost):

text
Listen 444

SSLCertificateFile "C:/percorso/apache/conf/ssl/dominio.esempio.it.crt"
SSLCertificateKeyFile "C:/percorso/apache/conf/ssl/dominio.esempio.it.key"

<VirtualHost *:444>
SSLEngine on
SSLProtocol -All +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder on
SSLCipherSuite HIGH:!aNULL:!MD5:!RC4:!3DES
</VirtualHost>

Riavvia Apache:

bash
net stop "Apache Service"
net start "Apache Service"

Test: https://dominio.esempio.it:444 → 🔒 Lucchetto verde

Risoluzione Problemi Comuni

ErroreSoluzione
“No cert matches private key”Verifica fingerprint: openssl x509 -noout -fingerprint -in dominio.esempio.it.crt
“Certificate missing”Usa -certfile nel PFX per includere intermediate CA
“Non valido sui client”PFX deve contenere leaf + intermediate
Import PFX falliscecertutil -f -p PASSWORD -importpfx "Computer" certificato_completo.pfx[seahawkmedia]​

Verifica Finale

text
openssl pkcs12 -info certificato_completo.pfx

Output atteso: “2 certificates inside” (leaf + intermediate)

Browser: F12 → Security → Certificate Path completa fino alla Root CA.


Nota: Sostituisci dominio.esempio.it con il tuo dominio reale. Il file .crt con 2 blocchi (BEGIN CERTIFICATE) contiene già la catena completa necessaria.