Cómo crear y administrar certificados autofirmados en Windows: información real
Cualquiera que haya experimentado con la PKI de Windows conoce MakeCert.exe, esa herramienta clásica para generar certificados autofirmados. Pero, ¿en serio? Hoy en día, New-SelfSignedCertificateel comando de PowerShell es la mejor opción: más flexible, sin descargas adicionales y compatible con herramientas modernas como SAN y SHA-256. Aun así, no es muy intuitivo, especialmente para quienes no están acostumbrados a ejecutar comandos ni a gestionar almacenes de certificados. Aquí tienes un ejemplo práctico para crear, exportar o cualquier otra cosa que necesites: un certificado autofirmado. Esta guía explica cómo crear un certificado para pruebas, para un sitio interno o incluso por diversión, sin gastar una fortuna en una CA real. Además, aprenderás a exportar ese certificado, vincularlo a IIS o realizar algunas tareas básicas de gestión durante el proceso. Ten en cuenta que, en algunas configuraciones, es complicado obtener los permisos correctos o necesitar PowerShell con privilegios elevados. Veamos algunos pasos prácticos. Espere algunas líneas de comando, rutas de menú y el tipo de cosas que confunden a las personas la primera vez, pero que se aclaran después de algunos intentos.
Creación de un certificado autofirmado con PowerShell
Utilice el cmdlet correcto y por qué es importante
Usarlo New-SelfSignedCertificatees mucho mejor que herramientas antiguas MakeCert.exe, primero porque está integrado y segundo porque admite SAN, SHA-256 y mejores opciones de clave. Es perfecto si desea crear un SSL de prueba para IIS, pruebas de API o servicios internos. Para ver todas las opciones, ejecute powershell Get-Command -Module PKI, que listará todos los comandos relacionados, principalmente New-SelfSignedCertificateen el módulo PKI. Recuerde: esto es principalmente para desarrollo y pruebas, no para producción. Al implementar, un certificado emitido por una CA real sigue siendo la mejor opción.
Cómo generar un certificado SSL simple para su dominio de prueba
Digamos que quieres un certificado para test.contoso.com. Sin más complicaciones, usa este comando: powershell New-SelfSignedCertificate -DnsName test.contoso.com -CertStoreLocation cert:\LocalMachine\My. Esto crea un certificado, lo almacena en la carpeta «Mi» (Personal) de tu equipo y muestra la huella digital junto con otra información. Luego puedes revisarlo en certlm.msc, en la sección «Personal», ya que Windows suele ocultar información si no la revisas. Atención: si no estás ejecutando PowerShell como administrador, probablemente fallará con un error de «Acceso denegado».Quizás tengas que hacer clic derecho en PowerShell y seleccionar «Ejecutar como administrador».En algunos equipos, incluso así, los permisos pueden ser delicados. Además, si especificas un proveedor criptográfico diferente, asegúrate de que esté instalado; de lo contrario, recibirás errores de proveedor.
Agregue SAN o varios nombres, no solo el CN
¿Solo crear un certificado simple? No es gran cosa. Pero ¿qué pasa si tu certificado necesita varios nombres DNS o incluso direcciones IP? El -DnsNameparámetro puede aceptar una matriz: powershell New-SelfSignedCertificate -DnsName adfs1.contoso.com, web_gw.contoso.com, enterprise_reg.contoso.com -CertStoreLocation cert:\LocalMachine\My ¿Y para una IP? Úsalo -TextExtensionporque -DnsNamesolo acepta nombres DNS: powershell New-SelfSignedCertificate -TextExtension @(«2.5.29.17={text}IPAddress=10.1.2.3, DNS=TESTServer1, DNS=TESTServer1.local») Sí, es un poco raro, pero funciona.
Exportar su certificado autofirmado para instalarlo o compartirlo
Si desea exportar la clave privada a PFX para importarla a otro lugar, necesitará la huella digital. Consulte con: powershell Get-ChildItem -Path «Cert:\LocalMachine\My» | Where-Object { $_. Thumbprint -eq «YOUR_THUMBPRINT» }.Sustituya su huella digital. Para exportar: powershell $CertPassword = ConvertTo-SecureString -String «YourPassword» -Force –AsPlainText Export-PfxCertificate -Cert cert:\LocalMachine\My\YOUR_THUMBPRINT -FilePath C:\temp\mycert.pfx -Password $CertPassword. Para claves públicas únicamente (no privadas), puede usar: powershell Export-Certificate -Cert cert:\LocalMachine\My\YOUR_THUMBPRINT -FilePath C:\temp\mycert.cer. Guardará el archivo del certificado. A partir de ahí, siga los pasos habituales: – Haga doble clic en el archivo `.cer` para instalarlo mediante la interfaz gráfica.- O bien, use el Asistente para importar certificados para colocarlo en las autoridades raíz de confianza si es necesario. Nota: Necesita derechos de administrador para exportar claves privadas o colocarlas en almacenes de LocalMachine.
Creación de una CA raíz y cadena de emisión (opcional pero útil)
Puede crear un certificado de CA raíz y luego generar certificados subordinados a partir de él, lo cual resulta útil para pruebas internas o para crear cadenas de CA. Ejemplo: powershell $rootCert = New-SelfSignedCertificate -Subject «CN=TestRootCA, O=MyOrg» -KeyExportPolicy Exportable -KeyUsage CertSign, CRLSign, DigitalSignature -KeyLength 2048 -HashAlgorithm «SHA256» -CertStoreLocation cert:\LocalMachine\My $intermediateCert = New-SelfSignedCertificate -Subject «CN=TestSubCA, O=MyOrg» -Signer $rootCert -CertStoreLocation cert:\LocalMachine\My ### Si la situación no es la adecuada: – ¿Ejecuta sin permisos de administrador? Se esperan errores de acceso denegado.- ¿Problemas con el proveedor de cifrado? Asegúrese de que el proveedor especificado exista.- ¿Tiempos de generación largos? A veces se trata simplemente de una máquina virtual lenta o de un sistema ocupado.
Cómo configurar IIS para usar su certificado autofirmado
Una vez que tenga el certificado, abra el Administrador de Internet Information Services (IIS) (`inetmgr.exe`).En la sección Enlaces de su sitio, agregue o edite un enlace HTTPS y seleccione su nuevo certificado. Alternativamente, vincúlelo usando PowerShell: powershell New-IISSiteBinding -Name «Default Web Site» -BindingInformation «*:443:» -CertificateThumbPrint «your_thumbprint» -CertStoreLocation «cert:\LocalMachine\My» -Protocol https *(Nota: este comando está sujeto a la configuración de su IIS, pero generalmente, la gente usa la GUI o scripts de las herramientas de administración de IIS).* Si desea vincular directamente a través de la huella digital: powershell # Reemplace la huella digital con la huella digital de su certificado $thumbprint = «YOUR_THUMBPRINT» Import-Module IISAdministration New-IISSiteBinding -Name «Default Web Site» -BindingInformation «*:443:» -CertificateThumbPrint $thumbprint -CertStoreLocation «cert:\LocalMachine\My» — Solo una nota rápida: todo esto es excelente para las pruebas, pero los navegadores se quejarán porque Los certificados autofirmados no son de confianza por defecto. Para un funcionamiento sin problemas, deberá instalar manualmente su CA raíz o confiar en el certificado en su equipo local. Esperamos que esto le ayude a crear, exportar y usar certificados autofirmados sin complicaciones. Esta no es la parte más atractiva de la administración de Windows, pero es crucial al crear herramientas internas o realizar pruebas seguras.
Resumen
- Úselo
New-SelfSignedCertificatepara la creación de certificados modernos y flexibles. - Especifique SAN con matrices o
-TextExtension. - Exportar a PFX o CER para implementación y configuración de confianza.
- Vincula tu certificado en IIS a través de GUI o PowerShell.
Resumen
Conseguir que un certificado autofirmado funcione no es precisamente divertido, pero una vez que le coges el truco, es bastante sencillo. Solo recuerda ejecutar PowerShell como administrador de vez en cuando y llevar un registro de tus huellas digitales. Aun así, es una forma eficaz de probar HTTPS o cifrar el tráfico interno sin caer en el terreno de una CA real. Ojalá esto ayude a alguien a evitar algunos de los problemas más comunes; a mí me funcionó en varias configuraciones, así que espero que te sirva igual.