¿Cómo puedo crear un certificado autofirmado que sea más potente que SHA-1?

¿Cómo puedo crear un certificado autofirmado que sea más potente que SHA-1?

Para el entorno de desarrollo, puedo crear un certificado autofirmado en IIS7.5. Pero ese certificado es SHA-1 y recientemente los navegadores se quejan de ello. Cuando abro FireBug veo las siguientes advertencias:

"Este sitio utiliza un certificado SHA-1; se recomienda utilizar certificados con algoritmos de firma que utilicen funciones hash más potentes que SHA-1".

Entonces mis preguntas son:

1) ¿Existe alguna forma de crear un certificado autofirmado que sea más potente que SHA-1?

2) Si no es así, ¿hay alguna forma de indicarle al navegador que deje de mostrar estas advertencias?

ACTUALIZAR

Terminé usando la respuesta de @vcsjones, pero eso me llevó hasta ahora. Allí tuvimos un par de problemas que tuve que resolver antes de que funcionara.

1) Por alguna razón no pude importar el certificado con contraseña. Así que terminé creando uno sin él.

2) Cuando importé el certificado .pfx a través de IIS, seguía recibiendo el mensaje "No existe una sesión de inicio de sesión especificada" cuando intenté aplicar un nuevo certificado en Editar enlaces. Así que investigué un poco y encontré esto.Pues contestapara ser útil, específicamente la respuesta de Mike L.

Otra cosa que agregaría es que cuando importe un certificado, recuerde seleccionar el certificado .pfx. La selección predeterminada del asistente de importación es *.cer, que puede importar (error que cometí), pero luego no pude ver el certificado en Certificados del servidor IIS. Cuando miré más de cerca, faltaba una pequeña llave en el ícono. Ahora, investigué que pude repararlo a través deKB-889651artículo. Así que asegúrese de importar .pfx y funcionará sin repararlo.

Otra nota: si tiene problemas de confianza con este certificado, impórtelo también a la "Autoridad de certificación raíz de confianza".

Respuesta1

Seguro. ElmakecertLa utilidad que forma parte del SDK de Windows puede hacer eso:

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

El -aparámetro establece el algoritmo hash. Esto genera un archivo PVK y DER .cer. Por supuesto, también puedes cambiar el nombre común por el que quieras. Yo solo usé localhost como ejemplo. Puede combinarlos en un PFX (lo que IIS prefiere usar al importar un certificado) usando pvk2pfx(también parte del SDK):

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

Esto simplemente toma los dos archivos makecertgenerados y los combina en un archivo PKCS12 .pfx.

Con el archivo PFX resultante, abriría IIS y lo importaría en Certificados de servidor, luego cambiaría los enlaces de su sitio para usar el nuevo certificado.

Respuesta2

Estoy usando una computadora con Windows 7 Enterprise bloqueada en el trabajo y, como tal, no puedo instalar el SDK de Windows para obtener acceso a makecert. Así es como creé mi certificado autofirmado sha256 (tomado dehttps://core.telegram.org/bots/self-signed):

  1. Decida en qué directorio desea guardar su certificado
  2. Cree un archivo de texto en ese directorio llamado template.txtcon el siguiente contenido:

    [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. Reemplace {your.domain.com}con la dirección que utilizará para acceder a su sitio, por ejemplo"CN=localhost"

  4. Abra un símbolo del sistema y cambie a su directorio de certificados
  5. Corrercertreq -new template.txt RequestFileOut
  6. Necesitará saber el número de serie, así que ejecute certutil -store -user mypara obtener un volcado que incluya el número de serie.
  7. Reemplace {SERIALNUMBER}con el número de serie en el volcado y {YOURDER}.crtcon el nombre del archivo de salida:certutil -user -store -split my {SERIALNUMBER} {YOURDER}.crt
  8. Reemplace {YOURDER}.crtcon el nombre del archivo de entrada y {YOURPEM}.cercon el nombre del archivo de salida:certutil -encode {YOURDER}.crt {YOURPEM}.cer
  9. Reemplace {your.domain.com}con su nombre de dominio real (de prueba) y {YOURPKCS}.pfxcon el nombre del archivo de salida:certutil -exportpfx -user {your.domain.com} {YOURPKCS}.pfx NoChain

Después de eso fui al Administrador de IIS, Sitios -> {nombre del sitio} -> Enlaces... (en "Editar sitio"). Luego hice clic en https/443 porque ya lo tenía configurado, Editar... y seleccioné el nuevo certificado de la lista.

Firefox se quejó de que mi sitio utilizaba un certificado autofirmado, así que lo agregué como excepción y ¡listo! ¡funcionó!

Respuesta3

Sí, también recibí el mensaje de error/advertencia "No existe una sesión de inicio de sesión especificada".

Simplemente hice clic en Aceptar por segunda vez y lo aceptó.

información relacionada