bg-tutorials

Come generare un CSR in IIS

Questa guida mostra come generare un CSR (Certificate Signing Request) su Microsoft IIS (Internet Information Services) su Windows Server. Puoi creare la richiesta in due modi: tramite l’interfaccia grafica di IIS Manager (la classica procedura guidata point-and-click), oppure con certreq.exe e un file INF da PowerShell. Entrambi i metodi conservano la chiave privata sul server nell’archivio certificati di Windows e producono una richiesta PKCS #10 da inviare alla tua Certificate Authority.

Un avvertimento importante da conoscere subito: la procedura guidata di IIS Manager non aggiunge un Subject Alternative Name (SAN) alla richiesta, e ogni CA pubblica ora richiede che il nome host sia presente nel SAN, non solo nel Common Name. Se hai bisogno di un SAN (e quasi sempre è così), usa il metodo certreq.exe più avanti, oppure genera il CSR fuori dal server con il nostro CSR Generator e importa il certificato emesso come file .pfx.

Accedi come Amministratore sul Windows Server che vuoi proteggere (o su una workstation che esegue un sito IIS), poi segui la sezione corrispondente alla tua versione di IIS. I passaggi seguenti trattano IIS 10 su Windows Server 2025, 2022, 2019 e 2016 (e anche IIS 10 su Windows 10 e Windows 11 client), e le procedure guidate più datate di IIS 8 / 8.5 / 7 / 6 per infrastrutture legacy.

Generare un CSR su IIS 10 (Windows Server 2016 – 2025)

IIS 10 è la versione fornita con Windows Server 2016, 2019, 2022 e 2025, così come la funzionalità IIS su Windows 10 e Windows 11 client. L’interfaccia di Manager è identica in ogni release.

Passo 1: Apri IIS Manager

  • Premi Win + R, digita inetmgr, e premi Invio, oppure
  • Apri il menu Start e cerca Internet Information Services (IIS) Manager.

Passo 2: Apri Server Certificates

  • Nel pannello Connections a sinistra, clicca sul nome del server.
  • Nel pannello centrale (Home), fai doppio clic su Server Certificates.

Passo 3: Avvia la richiesta di certificato

Nel pannello Actions a destra, clicca su Create Certificate Request. Si apre la finestra Distinguished Name Properties.

Passo 4: Compila il Distinguished Name

Inserisci i dati del soggetto come indicato di seguito. Usa solo caratteri ASCII standard; le lettere non latine invalidano la richiesta:

  • Common Name: il nome di dominio completo (FQDN) che vuoi proteggere, ad esempio www.example.com. Per un certificato wildcard, aggiungi un asterisco davanti al dominio apice, ad esempio *.example.com.
  • Organization: il nome legale completo della tua azienda, esattamente come registrato. Obbligatorio per i certificati OV e EV. Per i certificati Domain Validation (DV), questo campo viene ignorato, quindi funziona qualsiasi valore segnaposto breve.
  • Organizational unit: un’etichetta di reparto come IT o Web. Questo attributo è deprecato per i certificati pubblici (il CA/Browser Forum lo ha eliminato progressivamente), quindi lascialo minimo o saltalo dove la finestra lo consente.
  • City/locality: la città in cui è registrata la tua organizzazione, scritta per intero (ad esempio Seattle, non SEA).
  • State/province: il nome completo dello stato o della provincia (ad esempio Washington, non WA).
  • Country/region: il codice ISO a due lettere del paese (ad esempio US, GB, DE).

Verifica ogni campo e clicca su Next.

Passo 5: Scegli il Cryptographic Service Provider e la lunghezza della chiave

Nella finestra Cryptographic Service Provider Properties:

  • Cryptographic service provider: seleziona Microsoft RSA SChannel Cryptographic Provider. È la scelta corretta per un certificato RSA servito da IIS tramite HTTPS. (Scegli Microsoft DH SChannel Cryptographic Provider solo nel raro caso in cui serva una chiave Diffie-Hellman, non usata per il normale TLS web.)
  • Bit length: seleziona 2048. È l’attuale minimo accettato da ogni CA pubblica. Scegli 3072 o 4096 solo se la tua policy richiede una chiave più grande; il compromesso è un handshake TLS leggermente più lento.

Clicca su Next.

Passo 6: Salva il file CSR

Nella finestra File Name, clicca il pulsante di navigazione e scegli una cartella che potrai ritrovare facilmente, poi digita un nome file con estensione .txt, ad esempio certreq.txt. Non accettare il percorso predefinito C:WindowsSystem32: quella cartella è difficile da navigare e potresti non avere i permessi di scrittura a causa dello UAC. Il Desktop o una cartella dedicata C:certs funzionano meglio.

Clicca su Finish. IIS scrive il CSR nel percorso scelto e memorizza la chiave privata corrispondente come richiesta in sospeso nell’archivio certificati di Windows su questo server.

Passo 7: Copia il CSR e invialo alla CA

Apri il file salvato in Notepad (o in un qualsiasi editor di testo). Vedrai un blocco simile a questo:

-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDXjCCAkYCAQAwgZQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApXYXNoaW5ndG9u
... (many lines of base64) ...
-----END NEW CERTIFICATE REQUEST-----

Seleziona l’intero blocco, incluse le righe BEGIN NEW CERTIFICATE REQUEST e END NEW CERTIFICATE REQUEST, copialo e incollalo nel campo CSR del modulo d’ordine. Quando la CA valida la richiesta ed emette il tuo certificato, segui la guida come installare un certificato SSL su IIS e usa Complete Certificate Request per associare il file .cer emesso alla chiave in sospeso su questo server.

La procedura guidata di IIS Manager non aggiunge un SAN

La procedura guidata sopra produce una richiesta il cui unico nome host è il Common Name. I browser e i client moderni (Chromium, Firefox, Safari, .NET, Java, Go) validano il nome host solo rispetto all’estensione Subject Alternative Name; il Common Name viene ignorato per le decisioni di fiducia dal 2017. Le CA pubbliche rispondono copiando automaticamente il CN in una voce SAN per gli ordini con un solo nome, quindi una richiesta con solo CN funziona ancora per un singolo nome host. Tuttavia:

  • Se hai bisogno di più nomi host su un unico certificato (ad esempio example.com e www.example.com, oppure un certificato multi-dominio), la procedura guidata di IIS Manager non può codificarli.
  • Se la tua CA accetta le richieste rigorosamente come presentate, l’assenza di un SAN può essere rifiutata anche per un singolo nome host.

Per qualsiasi esigenza oltre un singolo nome, usa il metodo certreq.exe descritto di seguito, oppure genera il CSR con il nostro CSR Generator e importa il certificato emesso su IIS come .pfx.

Generare un CSR con certreq.exe e un file INF (con supporto SAN)

Lo strumento da riga di comando certreq.exe è incluso in ogni Windows Server e ti permette di specificare un SAN, la lunghezza della chiave, il soggetto esatto e il provider. Il processo si articola in tre parti: scrivere un file INF di richiesta, eseguire certreq -new per generare il CSR (e la chiave corrispondente nell’archivio Windows), quindi inviare il CSR alla tua CA.

Passo 1: Crea il file INF di richiesta

Apri Notepad come Amministratore e salva il file seguente come request.inf. Modifica la riga Subject e le voci DNS sotto [Extensions] in modo che corrispondano al tuo dominio:

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=www.example.com, O=Example Inc, L=Seattle, S=Washington, C=US"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = PKCS10
KeyUsage = 0xa0

[EnhancedKeyUsageExtension]
OID = 1.3.6.1.5.5.7.3.1

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "dns=www.example.com&"
_continue_ = "dns=example.com"

Note sui valori:

  • Subject: una singola riga, con campi separati da virgole. Usa il codice paese ISO a due lettere in C=.
  • KeyLength: minimo 2048. Impostalo su 3072 o 4096 se la tua policy lo richiede.
  • Exportable = TRUE: permette di esportare la chiave privata insieme al certificato emesso (per backup o per l’installazione su un secondo server). Impostalo su FALSE se vuoi che la chiave rimanga bloccata su questa macchina.
  • MachineKeySet = TRUE: memorizza la chiave nell’archivio Local Computer (da cui IIS legge). Lascia questa impostazione attiva per IIS.
  • 2.5.29.17: l’OID per il Subject Alternative Name. Aggiungi una riga _continue_ per ogni nome host; ogni riga tranne l’ultima deve terminare con il separatore &.

Passo 2: Genera il CSR

Apri un Command Prompt o PowerShell con privilegi elevati nella cartella che contiene request.inf ed esegui:

certreq -new request.inf certreq.txt

certreq genera la chiave privata nell’archivio Local Computer e scrive la richiesta PKCS #10 in certreq.txt. Apri il file, copia l’intero blocco da BEGIN NEW CERTIFICATE REQUEST a END NEW CERTIFICATE REQUEST, e invialo nel modulo d’ordine, allo stesso modo del metodo con IIS Manager.

Quando la CA restituisce il certificato emesso, completalo con:

certreq -accept certnew.cer

Questo associa il certificato emesso alla chiave privata che era in attesa nell’archivio, e il certificato diventa disponibile per l’associazione (binding) in IIS.

Verifica il CSR prima di inviarlo (opzionale)

Vale la pena confermare il Common Name, le voci SAN e la dimensione della chiave prima di inviare la richiesta alla tua CA. Sul server, lo strumento integrato certutil legge la richiesta:

certutil -dump certreq.txt

Se hai installato OpenSSL (Windows non lo include; puoi installarlo separatamente da una build come Shining Light Productions), questo comando mostra i medesimi dettagli:

openssl req -noout -text -in certreq.txt

Preferisci uno strumento online? Incolla il contenuto della richiesta nel decodificatore CSR di SSL Dragon per leggere il Common Name, le voci SAN e la dimensione della chiave. Verifica che il Common Name corrisponda al nome host che i client utilizzeranno e che ogni nome richiesto compaia nell’elenco Subject Alternative Name.

Generare un CSR su IIS 8 e 8.5 (Windows Server 2012 / 2012 R2)

La procedura guidata di IIS 8 / 8.5 è identica a quella di IIS 10. Windows Server 2012 e 2012 R2 hanno raggiunto la fine del supporto estesa nell’ottobre 2023, quindi pianifica di migrare questi carichi di lavoro verso una release più recente di Windows Server; fino a quel momento, i passaggi seguenti funzionano comunque.

  • Premi Win + R, digita inetmgr, e clicca OK. (In alternativa apri Internet Information Services (IIS) Manager dalla schermata Start.)
  • In Connections, seleziona il server, poi fai doppio clic su Server Certificates nel pannello Home.
  • In Actions, clicca su Create Certificate Request.
  • In Distinguished Name Properties, compila Common Name, Organization, Organizational unit, City/locality, State/province e Country/region esattamente come descritto sopra per IIS 10 (solo caratteri ASCII standard, nomi completi di stato e città, codice paese a due lettere). Clicca su Next.
  • In Cryptographic Service Provider Properties, seleziona Microsoft RSA SChannel Cryptographic Provider e imposta Bit length su 2048. Clicca su Next.
  • In File Name, scegli una cartella che potrai ritrovare facilmente e salva il file con estensione .txt (ad esempio certreq.txt). Clicca su Finish.
  • Apri il file salvato in Notepad, copia l’intero blocco da BEGIN NEW CERTIFICATE REQUEST a END NEW CERTIFICATE REQUEST, e incollalo nel modulo d’ordine.

La stessa limitazione sul SAN si applica su IIS 8 / 8.5: se hai bisogno di più di un nome host, usa il metodo certreq.exe descritto sopra.

Generare un CSR su IIS 7 (Windows Server 2008 / 2008 R2)

Windows Server 2008 e 2008 R2 sono ormai da tempo fuori supporto, quindi considera la procedura guidata di IIS 7 come una procedura legacy per sistemi che non puoi ancora sostituire. Il processo è lo stesso di IIS 8 / 10:

  • Premi Win + R, digita inetmgr, e clicca OK, oppure apri Start > Administrative Tools > Internet Information Services (IIS) Manager.
  • In Connections, seleziona il nome del server, poi fai doppio clic su Server Certificates.
  • In Actions, clicca su Create Certificate Request.
  • In Distinguished Name Properties, inserisci Common Name, Organization, Organizational unit, City/locality, State/province e Country/region come descritto per IIS 10. Clicca su Next.
  • In Cryptographic Service Provider Properties, scegli Microsoft RSA SChannel Cryptographic Provider e 2048 bit. Clicca su Next.
  • Clicca il pulsante di navigazione sotto Specify a file name for the certificate request, scegli una cartella, digita un nome file che termini con .txt, e clicca su Finish.
  • Apri il file salvato in Notepad, copia l’intero blocco della richiesta (incluse le righe BEGIN NEW CERTIFICATE REQUEST e END NEW CERTIFICATE REQUEST), e incollalo nel modulo d’ordine.

Generare un CSR su IIS 5 e 6 (deprecato)

IIS 5 e 6 (Windows 2000 Server e Windows Server 2003) sono ormai da tempo fuori supporto e non dovrebbero eseguire siti pubblici. Usa questa sezione solo se stai gestendo un’infrastruttura legacy che non puoi ancora sostituire:

  • Apri Start > Control Panel > Administrative Tools > Internet Information Services.
  • Fai clic destro su Default Web Site (o sul tuo sito) e scegli Properties.
  • Apri la scheda Directory Security e clicca su Server Certificate.
  • Nella IIS Certificate Wizard, seleziona Create a new certificate e clicca su Next.
  • Seleziona Prepare the request now, but send it later e clicca su Next.
  • Digita un nome descrittivo per il certificato, imposta Bit length su 2048, lascia le altre caselle deselezionate, e clicca su Next.
  • Inserisci il nome legale dell’organizzazione e un’Organizational unit (usa un’etichetta breve come IT). Clicca su Next.
  • In Common Name, inserisci l’FQDN del tuo sito, ad esempio www.example.com. Clicca su Next.
  • Compila Country/region, State/province e City/locality, poi clicca su Next.
  • Scegli una cartella e un nome file (salva come .txt), clicca su Next, controlla il riepilogo, e clicca nuovamente su Next per scrivere il CSR.
  • Apri il file in Notepad, copia l’intero blocco della richiesta, e incollalo nel modulo d’ordine.

Dopo che la CA ha validato il tuo CSR e ha emesso il certificato, continua con le istruzioni di installazione SSL su IIS.

Risparmia il 10% sui certificati SSL ordinando oggi stesso da SSL Dragon!

Emissione rapida, crittografia avanzata, affidabilità del browser al 99,99%, assistenza dedicata e garanzia di rimborso entro 25 giorni. Codice coupon: SAVE10

Un'immagine dettagliata di un drago in volo
Scritto da

Scrittore di contenuti con esperienza, specializzato in certificati SSL. Trasforma intricati argomenti di cybersicurezza in contenuti chiari e coinvolgenti. Contribuisci a migliorare la sicurezza digitale attraverso narrazioni d'impatto.