Home > Windows にまつわる e.t.c.

自己証明書で PowerShell にコード署名をする


PowerShell スクリプトを配布する時に、コード署名したいことがあります。

AD CS で証明書を発行しても良いのですが、ドメイン外に配布するとか、そもそも AD DS が無い場合は自己証明書を使うのが得策です。

コード署名に使う証明書は、Windows SDK に含まれる makecert.exe を使います。

 

Windows SDK のインストール

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]

 

証明書の Export

証明書のエクスポートは以下のようにします。

証明書を右クリックしてエクスポート

秘密鍵をエクスポート

 

これ以外はデフォルト

パスワード設定

 

出力先指定

 

関連情報

AD CS でコード証明書を発行する
http://www.vwnet.jp/Windows/WS08R2/ADCS/CodeSigningCert.htm

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.