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 CertificatoComputer localePersonaleFine
  3. Verifica: certlm.mscPersonale → Certificato con ✅ icona chiave

Configura IIS:

  1. Win+Rinetmgr
  2. ServerCertificati server → Certificato visibile
  3. Sito webBindingAggiungihttps (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 → SecurityCertificate 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.