Powershell: Generando certificados autofirmados con cmdlets

Powershell

En este post, hablaremos de cómo podemos generar nuestros propios certificados autofirmados exportables utilizando en el proceso cmdlets de Powershell y nuestro almacén local de certificados.

Un caso de uso podría darse en la necesidad de creación de certificados para la autenticación en la tunelización P2S contra nuestro tenant donde los certificados son necesarios para la correcta comunicación y establecimiento de los túneles IKEv2/OpenVPN con certificados.

Paso1: Generamos nuestro certificado raíz autofirmado


$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject "CN=raiz.mundoazure.cloud" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign

Paso 2.Generamos nuestro certificado cliente (incluyendo el root anterior)


New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject "CN=cliente.mundoazure.cloud" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" `
-Signer $cert -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.2")


$cert = New-SelfSignedCertificate -Type Custom -KeySpec Signature `
-Subject "CN=raiz.mundoazure.cloud" -KeyExportPolicy Exportable `
-HashAlgorithm sha256 -KeyLength 2048 `
-CertStoreLocation "Cert:\CurrentUser\My" -KeyUsageProperty Sign -KeyUsage CertSign

Ouput de claves de los certificados generados para comprobación del proceso.


Get-ChildItem -Path “Cert:\CurrentUser\My”
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\THUMBPRINT"
$cert = Get-ChildItem -Path "Cert:\CurrentUser\My\95380E965304A9AF3E4DEC9E23EEC30608DDE884"


Vista de ambos certificados generados en nuestro almacén local del sistema operativo (MsWindows).

Os animamos a compartir con nosotros vuestras opiniones en X: @mundoazure