自己署名 CA 証明書を作成し、現在のユーザーの信頼されたルート証明機関の証明書ストアに配置しました。次に、以下を使用してソフトウェア発行者証明書を作成しました。
makecert -n "CN=Temp Name, O=Temp Corporation, C=US" -h 0 ^
-eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" ^
-e 01/01/2015 -ic "Temp CA.cer" -iv "Temp.pvk" ^
-sv "Temp SPC.pvk" -a sha256 "Temp SPC.cer"
...そして、結果のファイルを次のようにpfxファイルにマージしました:
Pvk2Pfx /pvk "Temp SPC.pvk" /spc "Temp SPC.cer" /pfx "Temp SPC.pfx"
この pfx ファイルを使用して、Visual Studio (2013) で単純なコンソール アプリケーションの ClickOnce マニフェストに署名しましたが、すべて問題ありませんでした。ただし、結果の Setup.exe をテストすると、[アプリケーションのインストール - セキュリティの警告] ダイアログで発行元が不明であることが報告されていることに気付きました。
この MSDN ガイドに従って、-a sha256
フラグを除外することで期待どおりに機能するようになり、次のようになりました。
makecert -n "CN=Temp Name, O=Temp Corporation, C=US" -h 0 ^
-eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" ^
-e 01/01/2015 -ic "Temp CA.cer" -iv "Temp.pvk" ^
-sv "Temp SPC.pvk" "Temp SPC.cer"
わかりません。SPCを指定すると、発行元が「不明」になるのはなぜですか-a sha256
(そして、はるかに怒りっぽいダイアログ、黄色の盾など)。
編集:実際には、さらに少し奇妙になります。に変更しようとしましたが-a sha512
、それも機能します:
makecert /n "CN=Temp Name, O=Temp Corporation, C=US" /h 0 ^
/eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" ^
/e 01/01/2015 -ic "Temp CA.cer" -iv "Temp.pvk" ^
/sv "Temp SPC.pvk" -a sha512 "Temp SPC.cer"