Uso del cmdlet de PowerShell New-
SelfSignedCertificate para crear un certificado
autofirmado
Para crear un certificado autofirmado con PowerShell, puede usar el Nuevo certificado
autofirmado cmdlet, que es parte de PoSh PKI (Infraestructura de clave pública):
Para enumerar todos los cmdlets disponibles en el módulo PKI, ejecute el comando.
Get-Command -Module PKI
Se recomienda utilizar certificados autofirmados con fines de prueba o para proporcionar
certificados para servicios de Intranet internos (IIS, Exchange, Proxy de aplicación web,
LDAPS, ADRMS, DirectAccess, etc.) si no puede implementar la infraestructura PKI / CA o
comprar una certificado de un proveedor externo.
Consejo. No olvide que puede obtener fácilmente un certificado SSL gratuito de Let's
Encrypt. A continuación, se muestra un ejemplo de cómo emitir el certificado SSL Let's
Encrypt y vincularlo al sitio IIS en Windows Server.
Para crear un certificado, debe especificar los valores de –DnsName (nombre de un
servidor, el nombre puede ser arbitrario y diferente del nombre del host local) y -
CertStoreLocation (un almacén de certificados local en el que se colocará el certificado
generado). Puede usar el cmdlet para crear un certificado autofirmado en Windows 10 (en
este ejemplo), Windows 8.1 y Windows Server 2019/2016/2012 R2 / 2012.
Para crear un nuevo certificado SSL (del tipo SSLServerAuthentication predeterminado)
para el nombre DNS test.contoso.com (use un nombre FQDN) y colocarlo en la lista de
certificados personales en una computadora, ejecute el siguiente comando:
New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation
"cert:\LocalMachine\My"
irectory: Microsoft.PowerShell.SecurityCertificate::LocalMachineMy
Thumbprint Subject
---------- -------
2175A76B10F843676951965F52A718F635FFA043 CN=test.contoso.com
Si ejecuta este comando en una sesión de PowerShell no elevada (sin permisos de
administrador local), aparece un error:
New-SelfSignedCertificate :
CertEnroll::CX509Enrollment::_CreateRequest: Access denied. 0x80090010
(-2146893808 NTE_PERM)
Si ha especificado un proveedor criptográfico (CSP) no estándar, por ejemplo, utilizando
el -KeyAlgorithm "ECDSA_secP256r1" -Provider "Microsoft Smart Card Key
Storage Provider" , asegúrese de que esté instalado en su computadora (el valor
predeterminado es Microsoft Enhanced Cryptographic Provider CSP). De lo contrario,
aparecerá un error:
New-SelfSignedCertificate:
CertEnroll::CX509Enrollment::_CreateRequest: Provider type not
defined. 0x80090017 (-2146893801 NTE_PROV_TYPE_NOT_DEF).
Este comando crea un nuevo certificado y lo importa en el almacén de certificados
personales de la computadora.
Abre el certlm.msc Complemento MMC, asegúrese de que aparezca un nuevo certificado
en el Personal sección del almacén de certificados.
De forma predeterminada, se genera un certificado autofirmado con la siguiente
configuración:
• Algoritmo criptográfico: RSA;
• Longitud de la clave: 2048 bits;
• Uso aceptable de claves: Autenticación del cliente y Autenticación del servidor;
• El certificado se puede utilizar para: Firma digital, Cifrado de claves;
• Período de validez del certificado: 1 año.
Como puede ver, las propiedades del certificado indican que este certificado se puede
usar para la autenticación del cliente, pero también es válido para la autenticación del
servidor.
Investigar y crear otro certificado que vence en el año 2025