2016-01-28 47 views
5

のPowerShell 4.0新自己署名証明書コマンドレットによってコード署名証明書を作成する方法

makecertツールは、証明書に拡張キー使用法のオブジェクト識別子(OID)を記述するための-ekuオプションがあります。 のコードをに署名するなどの目的で使用することができます。しかし、それはコマンドレットではありません。

新しいPowerShellのバージョンには、スクリプトのローカルテスト用のNew-SelfSignedCertificateコマンドレットがあります。

New-SelfSignedCertificate -DnsName www.SomeSite.com -CertStoreLocation Cert:\CurrentUser\My 

私は-ekuの類似したオプションが表示されない。しかし、それは、コード署名に使用することができない証明書を作成します。

コード署名に使用する可能性のある新しい自己署名証明書(New-SelfSignedCertificateコマンドレットを通じて作成)の宛先を設定するにはどうすればよいですか。または、他のコマンドレットを使用して同じことを実行できますか?

答えて

2

PS4のNew-SelfSignedCertificateのバージョンはかなり基本的です。

Powershell v5には、特定のキーを作成するために必要なパラメータがあります。

-- CertSign 
-- CRLSign 
-- DataEncipherment 
-- DecipherOnly 
-- DigitalSiganture 
-- EncipherOnly 
-- KeyAgreement 
-- KeyEncipherment 
-- None (default) 
-- NonRepudiation 

を取る具体的Keyusageパラメータと

-- All 
-- Decrypt 
-- KeyAgreement 
-- None (default) 
-- Sign 

を取っKeyUsagePropertyは、あなたが、具体的V4に結びついていますか? v5にアップグレードすることができれば、必要なものを達成できるはずです。

0

PS '証明書プロバイダを使用して、異なる証明書ストア(ユーザーとマシン)にアクセスできますが、これはOIDの問題には役立ちません。私はあなたがX509証明書のための.NETサポートを見ることをお勧めします。 Googleの ".net x509証明書"とMSDNにX509Certificateクラスがあります。そこからクラスのドキュメントと概要ドキュメントを読んで、OIDの作成がサポートされているかどうかを確認してください。 .NETがそれをサポートしていない場合は、P/Invokeを使用してネイティブWindows CNG(暗号化の次世代)APIを呼び出さなければなりません。

関連する問題