社内アプリでは自己署名証明書の社内配布でまったく問題ありません。
むしろ、自己署名証明書が一般的です。コストもかからず、運用もシンプルで、MSIX や ClickOnce の署名要件も満たせます。
| 項目 | ClickOnce | MSIX |
|---|---|---|
| 署名 | 任意(推奨) | 必須 |
| 自動更新 | 標準で搭載 | 自作or配布サーバーで管理 |
| 配布方法 | Web/UNC/FTP | MSIXファイルを配布 |
| アンインストール | 残骸が残りやすい | 完全にクリーン |
| セキュリティ | 弱い | 強い(SmartScreenとの相性が良い) |
自己署名証明書の作り方(PowerShell で作成)
Windows 10/11 なら標準で使える PowerShell の New-SelfSignedCertificate が最も簡単です。
① PowerShell を管理者で開く
スタート → PowerShell → 右クリック → 管理者として実行
② 自己署名証明書を作成する
次のコマンドをそのまま実行します:
New-SelfSignedCertificate
-Type CodeSigningCert
-Subject "CN=MyTestCertificate"
-CertStoreLocation "Cert:\CurrentUser\My"
これで何ができる?
- 「MyTestCertificate」という名前のコード署名証明書が作成される
- Windows の「個人用証明書ストア」に保存される
- Visual Studio や MSIX Packaging Tool で使える
③ pfx ファイルとしてエクスポートする
MSIX や ClickOnce で使うには pfx にする必要があります。
PowerShell で続けて:
$pwd = ConvertTo-SecureString -String "yourpassword" -Force -AsPlainText
Export-PfxCertificate
-Cert "Cert:\CurrentUser\My\MyTestCertificate"
-FilePath "C:\temp\MyTestCertificate.pfx"
-Password $pwd
次のようなエラーの場合、
Export-PfxCertificate : パス 'Cert:\CurrentUser\My\MyTestCertificate
が存在しないため検出できません。
証明書があるか確認(※1)して
Get-ChildItem Cert:\CurrentUser\My
存在するようであれば、
$pwd = ConvertTo-SecureString -String "yourpassword" -Force -AsPlainText
$cert = Get-ChildItem Cert:\CurrentUser\My | Where-Object { $_.Subject -like "*MyTestCertificate*" }
あるいは一覧でThumbprint値がわかるようであれば(こちらの方が確実)、
$pwd = ConvertTo-SecureString -String "yourpassword" -Force -AsPlainText
$cert = Get-ChildItem Cert:\CurrentUser\My\THUMBPRINT値
Export-PfxCertificate -Cert $cert -FilePath "C:\temp\MyTestCertificate.pfx" -Password $pwd
ポイント
"yourpassword"は好きなパスワードに変更"C:\temp\MyTestCertificate.pfx"は保存先を自由に変更- これで 署名に使える pfx が完成
④Visual Studio / MSIX Packaging Tool で使う
Visual Studio(ClickOnce)
- 左メニュー → 署名
- 「ClickOnce マニフェストに署名する」
- pfx を選択 → パスワード入力
MSIX Packaging Tool
パッケージ作成の最後のステップで
pfx を指定して署名するだけ。
⑤社内 PC に信頼させるには .cer も必要
pfx は署名用ですが、
社内 PC に信頼させるには cer を配布します。
cer の作り方(GUI)
- certmgr.msc を開く
- 個人用 → 証明書
- 対象証明書を右クリック → エクスポート
- 「秘密キーをエクスポートしない」
- DER encorded binary x.509 (.CER)形式で保存
配布先
- 各 PC の「信頼されたルート証明機関」へインポート
- 企業なら GPO で一括配布が最適(要アクティブディレクトリ)
各 PC へ「信頼されたルート証明機関」へインポート
① .cer をダブルクリックして開く
証明書の情報ウィンドウが開きます。
② 「証明書のインストール」をクリック
ウィザードが起動します。
③ 「ローカルコンピューター」を選択
- 管理者権限が必要
- ここで「現在のユーザー」を選ぶと SmartScreen が信頼しないことがあるため注意
④ 「証明書をすべて次のストアに配置する」を選択
→ 参照 をクリック
⑤ 「信頼されたルート証明機関」を選択
ここが最重要ポイントです。
⑥ 完了 → インポート成功
これで Windows がこの証明書を「信頼された発行元」として扱います。

※1 GUI で証明書を確認する手順(CurrentUser)
1. 証明書マネージャーを開く
- Windowsキーを押す
- 「certmgr.msc」と入力
- Enter
これで Current User(現在のユーザー) の証明書ストアが開きます。
Leave a Comment