PowerShell スクリプトを配布する時に、コード署名したいことがあります。
AD CS で証明書を発行しても良いのですが、ドメイン外に配布するとか、そもそも AD DS が無い場合は自己証明書を使うのが得策です。
コード署名に使う証明書は、Windows SDK に含まれる makecert.exe を使います。
Windows 10 SDK は以下からダウンロードします。
Windows 10 SDK – Windows アプリ開発
https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk
「Windows Software Development Kit」をインストールします。
SDK のインストールが完了すると、makecert.exe は以下のディレクトに格納されます。
C:\Program Files (x86)\Windows Kits\10\bin\x64
C:\Program Files (x86)\Windows Kits\10\bin\x86
makecert.exe のあるディレクトリをカレントにし、コード証明書を作成します。
.\makecert -sky 2 -eku 1.3.6.1.5.5.7.3.3 -r -n "CN=CodeSignature" -pe -a sha256 -e 12/31/2050 -ss My |
オプション詳細はこちらを見てください
Makecert.exe (証明書作成ツール)
https://msdn.microsoft.com/ja-jp/library/bfsktky3(v=vs.100).aspx
スクリプトへの署名は以下のようにします。
$Cert = Get-ChildItem Cert:\CurrentUser\my | ? {$_.Subject -eq "CN=CodeSignature"} Set-AuthenticodeSignature -Cert $Cert -Filepath [署名する .ps1] |
証明書のエクスポートは以下のようにします。
証明書を右クリックしてエクスポート
秘密鍵をエクスポート
これ以外はデフォルト
パスワード設定
出力先指定
AD CS でコード証明書を発行する
http://www.vwnet.jp/Windows/WS08R2/ADCS/CodeSigningCert.htm
Copyright © MURA All rights reserved.