Come posso creare un certificato autofirmato più forte di SHA-1?


8

Per l'ambiente di sviluppo, posso creare creare un certificato autofirmato in IIS7.5. Ma quel certificato è SHA-1 e recentemente i browser si stanno lamentando. Quando apro FireBug visualizzo i seguenti avvisi:

"Questo sito utilizza un certificato SHA-1; si consiglia di utilizzare certificati con algoritmi di firma che utilizzano funzioni hash più forti di SHA-1."

Quindi le mie domande sono:

1) Esiste un modo per creare un certificato autofirmato più forte di SHA-1?

2) In caso contrario, c'è un modo per dire al browser di interrompere la visualizzazione di questi avvisi?

AGGIORNARE

Ho finito per usare la risposta @vcsjones, ma questo mi ha portato solo finora. Lì abbiamo un paio di problemi che ho dovuto risolvere prima di farlo funzionare.

1) Per qualche motivo non ho potuto importare il certificato con password. Così ho finito per crearne uno senza.

2) Quando ho importato il certificato .pfx tramite IIS, ho continuato a ricevere "Non esiste una sessione di accesso specificata" quando ho provato ad applicare un nuovo certificato in Modifica collegamenti. Quindi ho fatto poche ricerche e ho trovato utile questa risposta SO , in particolare la risposta di Mike L.

Un'altra cosa che aggiungerei è che quando si importa un certificato, ricordarsi di selezionare il certificato .pfx. La selezione predefinita della procedura guidata di importazione è * .cer che è possibile importare (errore che ho commesso), ma non sono stato in grado di vedere il certificato nei certificati del server IIS. Quando ho guardato più da vicino mancava la piccola chiave nell'icona. Ora, ho fatto delle ricerche sul fatto che sono stato in grado di ripararlo tramite l' articolo KB-889651 . Quindi assicurati di importare .pfx e funzionerà senza riparazioni.

Un'altra nota, se si verificano problemi di affidabilità con questo certificato, importarlo anche in "Autorità di certificazione radice attendibile".

Risposte:


8

Sicuro. L' makecertutilità che fa parte di Windows SDK può farlo:

makecert -len 2048 -r -a sha256 -sv private.pvk -n CN=localhost cert.cer

Il -aparametro imposta l'algoritmo hash. Questo sputa fuori un file PVK e un file .cer DER. Ovviamente puoi anche cambiare il nome comune in qualsiasi cosa tu voglia, ho appena usato localhost come esempio. È possibile combinarli in un PFX (ciò che IIS preferisce utilizzare durante l'importazione di un certificato) utilizzando pvk2pfx(anche parte dell'SDK):

pvk2pfx -spc cert.cer -pvk private.pvk -pfx out.pfx

Questo prende solo i due file makecertgenerati e li combina in un file .pfx PKCS12.

Con il file PFX risultante, aprire IIS e importarlo in Certificati server, quindi modificare i binding del sito per utilizzare il nuovo certificato.


l'ho creato, ma dove trovo cert.cer e out.pfx?
Pietro,

1
@peter è qualunque sia la directory di lavoro della console. Vedrai qualcosa di simile C:\Path\ToADirectory>nel prompt dei comandi. Questa è la tua directory di lavoro.
vcsjones,

quando ho provato a importare out.pfx in IIS mi chiedeva una password. Ho digitato la password che ho impostato durante la creazione del certificato utilizzando il tuo commento. Ma non è riuscito, conosci il motivo?
Pietro,

vcsjones ho installato il certificato nel sistema e quindi ho impostato il binind in IIS, quando ho sfogliato in firefox non si apre, ma in IE ho continuato a visualizzare un messaggio di errore e in grado di vedere il sito Web, ma è mostrato come icona non certificata come attendibile autorità di certificazione
peter

1
Un punto da notare è che makecert è ora deprecato. Per Windows 8.1 / Windows Server 2012 R2 e versioni successive, è possibile invece utilizzare il comando Powershell descritto qui: stackoverflow.com/a/19446469/914490
Mike

6

Sto utilizzando un computer Windows 7 Enterprise bloccato al lavoro e come tale non riesco a installare Windows SDK per ottenere l'accesso makecert. Ecco come ho creato il mio certificato autofirmato sha256 (tratto da https://core.telegram.org/bots/self-signed ):

  1. Decidi in quale directory vuoi salvare il tuo certificato
  2. Crea un file di testo in quella directory chiamato template.txtcon il seguente contenuto:

    [NewRequest]
    
    ; At least one value must be set in this section
    Subject = "CN={your.domain.com}"
    KeyLength = 2048
    KeyAlgorithm = RSA
    HashAlgorithm = sha256
    ;MachineKeySet = true
    RequestType = Cert
    UseExistingKeySet=false ;generates a new private key (for export)
    Exportable = true ;makes the private key exportable with the PFX
    
  3. Sostituisci {your.domain.com}con l'indirizzo che utilizzerai per accedere al tuo sito, ad es"CN=localhost"

  4. Aprire un prompt dei comandi e passare alla directory del certificato
  5. Correre certreq -new template.txt RequestFileOut
  6. Dovrai conoscere il numero di serie, quindi corri certutil -store -user myper ottenere un dump che include il numero di serie
  7. Sostituisci {SERIALNUMBER}con il numero seriale nel dump e {YOURDER}.crtcon il nome del file di output:certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. Sostituisci {YOURDER}.crtcon il nome del file di input e {YOURPEM}.cercon il nome del file di output:certutil -encode {YOURDER}.crt {YOURPEM}.cer
  9. Sostituisci {your.domain.com}con il tuo vero nome di dominio (di prova) e {YOURPKCS}.pfxcon il nome del file di output:certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain

Successivamente sono passato a Gestione IIS, Siti -> {nome sito} -> Binding ... (in "Modifica sito"). Ho quindi cliccato su https / 443 perché l'avevo già impostato, Modifica ... e selezionato il nuovo certificato dall'elenco.

Firefox si è lamentato del fatto che il mio sito utilizzava un certificato autofirmato, quindi l'ho appena aggiunto come eccezione e voilà! ha funzionato!


Questo è l'esempio più funzionante senza alcuna installazione, che a volte non è possibile sul server prod.
fame

Non sono riuscito a farlo funzionare sulla mia finestra di Windows 7, ma ha funzionato perfettamente sul server 2012. Come nota laterale {yourpem} .cer e {yourpkcs.pfx} sono generati dai due comandi in cui sono elencati. Tu ' probabilmente vorrò usare lo stesso nome di {yourder} .crt. Quindi, per semplicità, {yourcert} .crt, {yourcert} .cer, {yourcert}
.pfx

0

Sì, ho ricevuto anche quel messaggio di errore / avviso "Una sessione di accesso specificata non esiste".

Ho appena cliccato OK una seconda volta e lo ha accettato.

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.