He creado un certificado autofirmado con el certificado New-SelfSignedCertificate de Powershell, con la intención de cifrar y almacenar un nombre de usuario / contraseña en público.
Utilizando específicamente -
New-SelfSignedCertificate -TextExtension @("2.5.29.37={text}1.3.6.1.4.1.311.80.1")
-Provider "Microsoft Enhanced RSA and AES Cryptographic Provider"
-DnsName sign.example.com
-CertStoreLocation "Cert:\CurrentUser\My"
-KeyExportPolicy ExportableEncrypted -KeyUsage DataEncipherment
-KeyUsageProperty All -KeyLength 2048
$key = New-Object byte[](32)
$rng = [System.Security.Cryptography.RNGCryptoServiceProvider]::Create()
$rng.GetBytes($key)
$SecureStringWithKey = $cred.Password | ConvertFrom-SecureString -Key $key
Luego estoy creando un objeto con la clave, el nombre de usuario y la contraseña de seguridad y lo cifro a través de
Protect-CmsMessage -Content $object -To $thumbprint
Suponiendo que he usado una contraseña compleja para el archivo pfx, es seguro almacenar el archivo pfx y la cadena cifrada en un repositorio de github (junto con el script que desenreda todo el asunto) o debería estar tomando medidas para mantener el archivo pfx seguro también?