Creare un certificato digitale per uno script di Powershell

SSL certificate Quando lanciate uno script di Powershell vi dice che l’esecuzione è disattivata?
E’ perché il sistema operativo accetta di default solo script firmati digitalmente.
Come fare?

Se vi capita di ricevere l’errore della Figura 1 è perché il vostro file ps1 non ha la firma digitale.

Figura 1: Errore script ps1
Figura 1: Errore script ps1

Anzitutto bisognerà creare un certificato autofirmato per il proprio utente che ci servirà per firmare lo script:

$NomeCertificato = "Certificato autofirmato per firma script"
$NomeFilePfx = ".\CertificatoAutofirmato-"+(Get-Date -UFormat "%Y%m%d")+"-"+(Get-Date -UFormat "%H%M%S")+".pfx"
$LaMiaPassword = Read-Host "Inserire una password per il certificato autofirmato" -AsSecureString
New-SelfSignedCertificate -subject $NomeCertificato -Type CodeSigning  | Export-PfxCertificate -FilePath $NomeFilePfx -password $LaMiaPassword 
Write-Output "Creato certificato PFX $NomeCertificato"
Write-Output "Nome file: $NomeFilePfx"

Per verificare il certificato autofirmato:

certutil $NomeFilePfx

A questo punto si dovrà firmare digitalmente il file FileDaFirmare.ps1:

$MioCertificatoPfx = Get-PfxCertificate -FilePath $NomeFilePfx
Set-AuthenticodeSignature -PSPath .\FileDaFirmare.ps1 -Certificate $MioCertificatoPfx
Write-Host "Non dimenticare di salvare il file ps1 in formato UTF-8"

Ora il file di testo FileDaFirmare.ps1 avrà una nuova sezione contenente la firma:

SIG

Lascia un commento qui

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...