Olá pessoal,
Hoje vamos ver como gerar certificados digitais auto assinados para assinar digitalmente scripts powershell, que é uma boa pratica. Quando executamos scripts no pwoershell, o padrão é que ele bloqueie com a politica de execução de scripts que é possivel visualizar com o comando Get-ExecutionPolicy. Muitas vezes vejo no mercado utilizarem Bypass ou simplismente permitir scripts sem assinatura digital, mas isso pode ser vazão a diversos tipos de ataque, inclusive ransomwares.
Uma vez assinado digitalmente por uma certificadora confiavel, que pode ser uma entidade publica ou uma certificadora corporativa, a maquina irá executar esses scripts sem problema algum.
Para gerar o certificado basta utilizar o comando New-SelfSignedCertificate, caso queira usar uma certificadora, basta modificar o comando abaixo inserindo o parametro Signer:
$SelfSignedCertificate = @{
CertStoreLocation = 'cert:\currentuser\my'
Subject = 'CN=Guido Oliveira'
KeyAlgorithm = 'RSA'
KeyLength = '2048'
Provider = 'Microsoft Enhanced RSA and AES Cryptographic Provider'
KeyExportPolicy = 'Exportable'
KeyUsage = 'DigitalSignature'
Type = 'CodeSigningCert'
}
New-SelfSignedCertificate @SelfSignedCertificate
2 Comments
Obrigado pelas informações.
Pode me responder a umas dúvidas?
Uma vez executado este seu script, o certificado é instalado automaticamente no windows ?
Como assino o script PowerShell e depois de assinado o PowerShell reconhece ele normalmente apenas ao executar?
A configuração do PowerShell pode ficar como AllSigned?
Atualizei o PowerShell no WinServer 2008 R2, mas o comando New-SelfSignedCertificate não está disponível.
Alguma alternativa funcional?
Existe script que antigo já que cria o simular… “New-SelfSignedCertificateEx”, mas dá erro e não gera o certificado.
Se puder me ajudar, desde já agradeço.
up