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 Exportable
en VERDADERO si desea poder archivar su clave. El FriendlyName
es completamente opcional y la Extensions
secció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:
- Abra un símbolo del sistema y cd en el directorio donde guardó la información anterior.
- correr
certreq -new above.inf request.req
- Envíe el archivo request.req a su CA. Lo procesarán y lo aprobarán / rechazarán.
- Cuando lo aprueben, deben devolverle su clave pública en un archivo .cer.
- Ejecute
certreq -accept file-from-ca.cer
para 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 FriendlyName
y HashAlgorithm
son Server 2008 (y R2) solamente. Puede ver una lista de proveedores criptográficos compatibles ejecutando el comando certutil -csplist
y 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