Assinar um arquivo de script do PowerShell (PS1) aumenta a confiança e a segurança, validando a identidade do editor e garantindo que o script não foi adulterado. Veja como assinar um script do PowerShell:
Pré-requisitos :
- Você deve ter um certificado de assinatura de código. Se não tiver um, você pode obter um certificado autoassinado ou adquirir um de uma autoridade de certificação (CA) confiável.
- Certifique-se de que o script do PowerShell esteja sintaticamente correto e livre de erros.
Etapas para assinar um script do PowerShell :
1.
Gerar um certificado :
- Abra o Windows PowerShell ISE (Integrated Scripting Environment) ou um console normal do PowerShell.
- Digite o seguinte comando para gerar um certificado de assinatura de código autoassinado:
```PowerShell
New-SelfSignedCertificate -DnsName [SeuDomínio] -CertStoreLocation Cert:\CurrentUser\Meu
```
Substitua [SeuDomínio] pelo seu nome de domínio.
2.
Exportar o certificado :
- Digite o seguinte comando para exportar o certificado autoassinado recém-criado como um arquivo .pfx:
```PowerShell
Exportar-PfxCertificate -Cert [ThumbprintOfTheCertificate] -FilePath [OutputFilePath].pfx -Password [Senha]
```
Substitua [ThumbprintOfTheCertificate] pela impressão digital do seu certificado recém-criado.
Substitua [OutputFilePath] pelo local desejado para o arquivo .pfx exportado.
Substitua [Senha] por uma senha forte para o arquivo .pfx.
3.
Assine o roteiro :
- Digite o seguinte comando para assinar seu script. Substitua [ScriptPath] pelo caminho completo para o arquivo de script do PowerShell (.ps1):
```PowerShell
Set-AuthenticodeSignature -FilePath [ScriptPath] -Certificate ([Get-ChildItem -Path Cert:\CurrentUser\My | Onde { $_.Subject -match 'CN=[SeuDomínio]' }) | Selecione -Índice 0) -Senha [Senha]
```
Substitua [ScriptPath] pelo caminho completo para o arquivo de script do PowerShell (.ps1).
Substitua [Senha] pela senha que você usou ao exportar o arquivo .pfx.
4.
Validar a assinatura :
- Digite o seguinte comando para verificar a assinatura do script:
```PowerShell
Get-AuthenticodeSignature -FilePath [ScriptPath]
```
Isso confirma que o script está assinado e validado.
Notas adicionais :
- Ao executar o script assinado, o usuário receberá um aviso solicitando que confie no editor. Ao instalar o certificado de assinatura de código em seu armazenamento raiz confiável ou ao permiti-lo como uma exceção, os usuários podem aceitar o script como confiável.
- O uso de um certificado autoassinado exibirá um aviso de segurança. Para aumentar a confiança, você pode obter seu certificado assinado por uma CA confiável como VeriSign ou DigiCert.
- O script assinado pode ser compartilhado e usado com segurança por outras pessoas. Quando um script assinado é executado, ele mostrará as informações do editor, garantindo que não foi modificado ou comprometido.