IIS 7.0 - Certificato SSL - rinnovo o nuovo?


13

Uno dei miei certificati SSL (solo verifica del dominio semplice) sta per scadere sul server IIS 7.0 di Windows 2003.

Ho ricevuto un'offerta migliore da un altro fornitore e i ragazzi che originariamente hanno rilasciato il mio certificato non vogliono negoziare prezzi più bassi.

Ad ogni modo - passando attraverso la procedura guidata di certificazione in IIS, ho la possibilità di "rinnovare" o "disinstallare" e quindi installare un nuovo certificato.

Quindi - posso usare l'opzione "rinnova" per creare una richiesta di certificato e passarla al nuovo fornitore o devo iniziare con una "nuova" richiesta? Sarà importante per il nuovo fornitore che il certificato precedente sia stato emesso da un altro firmatario?

Il problema è che non desidero arrestare il server (almeno la parte protetta) a causa della rimozione del vecchio certificato e della creazione di un nuovo CSR e di attendere l'installazione del nuovo certificato.

Oppure esiste un'opzione per preparare un nuovo CSR senza rimuovere il vecchio certificato?

Risposte:


7

Hai solo bisogno di creare un sito Web temporaneo con IIS 6.0. IIS 7.0 consente di creare più richieste in sospeso alla volta.

IIS 7.0 in realtà ha un bug che causa la funzione di rinnovo per generare un CSR con una chiave molto grande (molto più grande di quanto desideri). Per questo motivo, si consiglia di creare una nuova richiesta in sospeso anziché selezionare l'opzione di rinnovo. Una volta installato, è sufficiente cambiare l'associazione SSL sul sito Web e non si avranno tempi di inattività. Ciò consente anche di generare una nuova chiave ogni volta che si rinnova, aumentando la sicurezza.

Il fornitore del certificato (CA) non si preoccupa se si utilizza la nuova opzione o l'opzione di rinnovo e si può usare entrambe le opzioni se si sta con la stessa CA o si ordina da una nuova.


7

Il rinnovo di un certificato consente di conservare la stessa chiave pubblica e privata durante l'aggiornamento della data di scadenza del certificato. Il vantaggio di questo è se dovessi memorizzare l'identificazione personale su un router o qualcosa del genere. Ritengo che per rinnovare una richiesta sia necessaria la stessa CA di emissione, quindi potrebbe essere più semplice generare manualmente una nuova richiesta.

Per generare una nuova richiesta senza far saltare IIS

È possibile creare manualmente la richiesta di certificato e inviarla. Una volta ottenuto il nuovo certificato, puoi semplicemente cambiare il certificato che IIS7 sta cercando. Come creare manualmente un certificato SSL del server Web .

L'essenziale del processo è che creerai un file inf con le informazioni richieste, esegui certreq -new file.inf file.req. Una volta che hai il file di richiesta, puoi inviarlo alla CA che desideri emettere il certificato, quindi accettare la chiave pubblica che ti inviano con il comandocertreq -accept file-from-ca.req

Esempio request.inf

[Version]
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=fully.qualified.domain.name, OU=Organizational Unit, O=Company, L=City, S=State, C=Country"
KeySpec = 1
KeyLength = 2048
HashAlgorithm = SHA256
Exportable = FALSE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
UseExistingKeySet = FALSE
RequestType = PKCS10
KeyUsage = 0xa0
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
FriendlyName = ""

[EnhancedKeyUsageExtension]
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[RequestAttributes]
CertificateTemplate = WebServer

[Extensions]
2.5.29.17 = "{text}"
_continue_ = "DNS=&"
_continue_ = "DNS="

Il precedente esempio inf è uno che uso internamente per la mia CA ma può essere adattato per funzionare per la maggior parte degli ambienti. È possibile impostare Exportablesu TRUE se si desidera poter archiviare la chiave. Il FriendlyNameè completamente opzionale e la Extensionssezione è per l'utilizzo di nomi DNS alternativi (nomi soggetto alternativi).

Un esempio di una voce SAN sarebbe:

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

Ciò ti consentirebbe di utilizzare lo stesso certificato con i tre siti di cui sopra senza lamentarti che esiste una mancata corrispondenza del nome (sui browser moderni - non credo che IE6 lo capisca). È importante includere il nome di dominio completo (il CN della riga dell'oggetto) nella SAN se lo si imposta. Puoi anche rimuovere completamente l'area delle estensioni se non hai bisogno di più nomi di dominio (inoltre, alcune CA potrebbero non supportarlo).

Il processo

Una volta salvate le informazioni di cui sopra (so che sono molte). Segui questi passi:

  1. Aprire un prompt dei comandi e cd nella directory in cui è stata salvata la precedente inf.
  2. Correre certreq -new above.inf request.req
  3. Invia il file request.req alla tua CA. Lo elaboreranno e lo approveranno / rifiuteranno.
  4. Quando lo approvano, dovrebbero restituirti la tua chiave pubblica in un file .cer.
  5. Esegui certreq -accept file-from-ca.cerper terminare l'impostazione della chiave.

In bocca al lupo!

modificare

La sintassi completa per certreq e il file inf è disponibile nell'Appendice 3: Sintassi Certreq.exe (Windows Server 2003 SP1) . Solo FriendlyNamee HashAlgorithmsono Server 2008 (e R2). È possibile visualizzare un elenco di provider crittografici supportati eseguendo il comando certutil -cspliste osservando l'output. Una casella corrente di Windows 2003 SP2 ha il "Provider crittografico SChannel Microsoft RSA" elencato come provider disponibile, quindi assicurati che il tuo file abbia le virgolette impostate correttamente e che la voce sia su una sola riga (nessun wrapping o multilinea).

Puoi anche cambiare ProviderName in ProviderType e utilizzare il numero fornito dall'output di certreq -csplist.

In questo caso ottengo il seguente output:

Provider Name: Microsoft RSA SChannel Cryptographic Provider
Provider Type: 12

Quindi posso usare entrambi

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

o

ProviderType = 12

Grazie. Come lo preparo manualmente?
Sunny

Inoltre, sempre la domanda in sospeso, è importante per il "rinnovo" che il certificato verrà emesso da un nuovo fornitore?
Sunny

Per quanto ne so, un rinnovo richiede che la stessa CA emittente invii il certificato aggiornato poiché un rinnovo mantiene la stessa chiave pubblica e privata. Una CA diversa avrà una diversa chiave impostata con cui firmare, quindi la coppia di chiavi pubblica / privata sarà diversa.
Giosuè,

Joshua, riporta questo: Processore di richiesta certificato: i dati non sono validi. 0x8007000d (WIN32: 13) mycert.inf (HashAlgorithm = "SHA256"). Sei sicuro che dovrebbe funzionare? In orig. articolo a cui ti sei collegato, non esiste tale impostazione.
Sunny

Ho rimosso le impostazioni di HashAlgorithm e FriendlyName (come se ne lamentasse) e no ottengo: Processore richiesta certificato: il tipo di provider non corrisponde al valore registrato. 0x8009001b (-2146893797). Peccato.
Sunny

1

OK, per rispondere parzialmente alla mia domanda - la parte della creazione / utilizzo di un nuovo certificato senza rimuovere quello esistente (cioè senza arrestare il server), ho trovato una buona descrizione sul sito Web di Comodo - in pratica ho bisogno di creare un sito Web "temporaneo" sul server e utilizzarlo per creare un nuovo CSR, inviarlo per la firma, ricevere e importare il certificato.

Quindi sul mio sito (reale) principale ho bisogno di sostituire il certificato corrente e quindi eliminare quello temporaneo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.