自己署名証明書を作り社内で使う

社内アプリでは自己署名証明書の社内配布でまったく問題ありません。
むしろ、自己署名証明書が一般的です。コストもかからず、運用もシンプルで、MSIX や ClickOnce の署名要件も満たせます。

自己署名証明書の作り方(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)

  1. 左メニュー → 署名
  2. 「ClickOnce マニフェストに署名する」
  3. pfx を選択 → パスワード入力

MSIX Packaging Tool
パッケージ作成の最後のステップで
pfx を指定して署名するだけ。

⑤社内 PC に信頼させるには .cer も必要

pfx は署名用ですが、
社内 PC に信頼させるには cer を配布します。
cer の作り方(GUI)

  1. certmgr.msc を開く
  2. 個人用 → 証明書
  3. 対象証明書を右クリック → エクスポート
  4. 「秘密キーをエクスポートしない」
  5. .cer 形式で保存
    配布先
  • 各 PC の「信頼されたルート証明機関」へインポート
  • 企業なら GPO で一括配布が最適(要アクティブディレクトリ)

各 PC へ「信頼されたルート証明機関」へインポー

① .cer をダブルクリックして開く

証明書の情報ウィンドウが開きます。

② 「証明書のインストール」をクリック

ウィザードが起動します。

③ 「ローカルコンピューター」を選択

  • 管理者権限が必要
  • ここで「現在のユーザー」を選ぶと SmartScreen が信頼しないことがあるため注意

④ 「証明書をすべて次のストアに配置する」を選択

参照 をクリック

⑤ 「信頼されたルート証明機関」を選択

ここが最重要ポイントです。

⑥ 完了 → インポート成功

これで Windows がこの証明書を「信頼された発行元」として扱います。

※1 GUI で証明書を確認する手順(CurrentUser)

1. 証明書マネージャーを開く

  • Windowsキーを押す
  • certmgr.msc」と入力
  • Enter

これで Current User(現在のユーザー) の証明書ストアが開きます。

More Reading

Post navigation

Leave a Comment

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です