IIS 7.0 - Certificado SSL - ¿renovar o nuevo?


13

Uno de mis certificados SSL (solo verificación de dominio simple) está a punto de caducar en el servidor Windows 2003 IIS 7.0.

Recibí una mejor oferta de otro proveedor, y los tipos que originalmente emitieron mi certificado no quieren negociar precios más bajos.

De todos modos, a través del asistente de certificados en IIS, tengo la opción de "renovar" o "desinstalar" y luego instalar un nuevo certificado.

Entonces, ¿puedo usar la opción "renovar" para crear una solicitud de certificado y pasarla al nuevo proveedor, o debo comenzar con la solicitud "nueva"? ¿Importará para el nuevo vendedor que el certificado anterior haya sido emitido por otro firmante?

El problema es que no quiero detener el servidor (la parte segura al menos) debido a la eliminación del certificado anterior y la creación de una nueva CSR, y esperar a que se instale el nuevo certificado.

¿O hay una opción para preparar una nueva CSR sin eliminar el certificado anterior?

Respuestas:


7

Solo necesita crear un sitio web temporal con IIS 6.0. IIS 7.0 le permite crear múltiples solicitudes pendientes a la vez.

IIS 7.0 en realidad tiene un error que hace que la función de renovación genere una CSR con una clave muy grande (mucho más grande de lo que desea). Debido a esto, se recomienda que cree una nueva solicitud pendiente en lugar de seleccionar la opción de renovación. Una vez instalado, simplemente cambie el enlace SSL en el sitio web y no tendrá ningún tiempo de inactividad. Esto también le permite generar una nueva clave cada vez que renueve, lo que aumenta la seguridad.

Al proveedor de certificados (CA) no le importa si usa la nueva opción o la opción de renovación y puede usar cualquiera de las opciones si se queda con la misma CA o si ordena desde una nueva.


7

La renovación de un certificado le permite mantener la misma clave pública y privada mientras actualiza la fecha de vencimiento del certificado. La ventaja de esto es si tuviera que almacenar la huella digital en un enrutador o algo así. Creo que se necesita la misma CA emisora ​​para renovar una solicitud, por lo que puede ser más fácil generar una nueva solicitud a mano.

Para generar una nueva solicitud sin explotar IIS

Puede crear la solicitud de certificado manualmente y enviarla. Una vez que obtenga el nuevo certificado, puede cambiar el certificado que IIS7 está buscando. Cómo crear un certificado SSL de servidor web manualmente .

La esencia del proceso es que creará un archivo inf con la información requerida, ejecute certreq -new file.inf file.req. Una vez que tenga el archivo de solicitud, puede enviarlo a la CA que desea emitir su certificado, luego aceptar la clave pública que le envían con el comandocertreq -accept file-from-ca.req

Ejemplo 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="

El ejemplo anterior inf es uno que uso internamente para mi propia CA pero que puedo adaptar para trabajar en la mayoría de los entornos. Puede establecerlo Exportableen VERDADERO si desea poder archivar su clave. El FriendlyNamees completamente opcional y la Extensionssección es para usar nombres DNS alternativos (Nombres alternativos del sujeto).

Un ejemplo de una entrada SAN sería:

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

Eso le permitiría usar el mismo certificado con los tres sitios anteriores sin quejarse de que no coinciden los nombres (en los navegadores modernos, no creo que IE6 lo entienda). Es importante que incluya el nombre de dominio completo (el CN ​​de la línea de asunto) en la SAN si lo configura. También puede eliminar completamente el área de extensiones si no necesita múltiples nombres de dominio (también, algunas CA pueden no admitirlo).

El proceso

Una vez que haya guardado la información anterior (sé que es mucha). Sigue estos pasos:

  1. Abra un símbolo del sistema y cd en el directorio donde guardó la información anterior.
  2. correr certreq -new above.inf request.req
  3. Envíe el archivo request.req a su CA. Lo procesarán y lo aprobarán / rechazarán.
  4. Cuando lo aprueben, deben devolverle su clave pública en un archivo .cer.
  5. Ejecute certreq -accept file-from-ca.cerpara terminar de configurar la clave.

¡Buena suerte!

Editar

La sintaxis completa para certreq y el archivo inf se pueden encontrar en el Apéndice 3: Sintaxis de Certreq.exe (Windows Server 2003 SP1) . El FriendlyNamey HashAlgorithmson Server 2008 (y R2) solamente. Puede ver una lista de proveedores criptográficos compatibles ejecutando el comando certutil -csplisty mirando la salida. Un cuadro actual de Windows 2003 SP2 tiene el "Proveedor criptográfico SChannel de Microsoft RSA SCAN" listado como un proveedor disponible, así que asegúrese de que su archivo tenga las comillas establecidas correctamente y que la entrada esté en una sola línea (sin envoltura o líneas múltiples).

También puede cambiar ProviderName a ProviderType y usar el número proporcionado por la salida de certreq -csplist.

En este caso obtengo el siguiente resultado:

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

Entonces puedo usar

ProvderName = "Microsoft RSA SChannel Cryptographic Provider"

o

ProviderType = 12

Gracias. ¿Cómo lo preparo manualmente?
Soleado el

Además, sigue siendo la pregunta pendiente, ¿es importante para la "renovación" de que el certificado será emitido por un nuevo proveedor?
Soleado el

Hasta donde sé, una renovación requiere que la misma CA emisora ​​le envíe el certificado actualizado, ya que una renovación conserva la misma clave pública y privada. Una CA diferente tendrá un conjunto de claves diferente para firmar, por lo que su par de claves pública / privada será diferente.
Joshua

Joshua, informa esto: Procesador de solicitud de certificado: los datos no son válidos. 0x8007000d (WIN32: 13) mycert.inf (HashAlgorithm = "SHA256"). ¿Estás seguro de que esto debería funcionar? En el orig. artículo al que se vinculó, no existe tal configuración.
Soleado el

Eliminé la configuración de HashAlgorithm y FriendlyName (ya que se quejaba de ellos) y no obtengo: Procesador de solicitud de certificado: el tipo de proveedor no coincide con el valor registrado. 0x8009001b (-2146893797). Demasiado.
Soleado

1

OK, para responder parcialmente a mi propia pregunta: la parte de crear / usar un nuevo certificado sin eliminar el existente (es decir, sin detener el servidor), encontré una buena descripción en el sitio web de Comodo , básicamente necesito crear un sitio web "temporal" en el servidor y úselo para crear un nuevo CSR, enviarlo para firmar y recibir e importar el certificado.

Luego, en mi sitio principal (real), necesito reemplazar el certificado actual y luego eliminar el temporal.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.