PowerShellの証明書ストア

kiuyu

2020/08/02

PowerShellで証明書ストアを表示した時の出力結果。たまになんだっけ?となるのでメモ。

カレントユーザーの証明書ストア(certmgr.msc)

ローカルコンピューターの証明書ストア(certlm.msc)

よく使うもの

Cert:\CurrentUser\RootとCert:\LocalMachine\Root。いずれも「信頼できるルート証明機関」を表すけどユーザーかコンピューターかが異なる点。社内向けPKIのCA証明書をCert:\LocalMachine\Rootにインポートすることが多い。PowerShellなら以下のような感じかな。

Import-Certificate -FilePath 'C:\tmp\SyanaiCA.cer' -CertStoreLocation 'Cert:\LocalMachine\Root'

証明書認証するときはCert:\CurrentUser\MyとCert:\LocalMachine\Myも割と使う。いずれも「個人」を表す。EAP-TLSでネットワーク認証しているときはCert:\LocalMachine\Myにインポートすることが多い。例によってPowerShellでインポートするなら以下。クライアント証明書はPKCS#12形式のことが多いか。

$password = ConvertTo-SecureString -Force -AsPlainText -String "証明書のパスワード"
Import-PfxCertificate -FilePath 'C:\tmp\my_cert.pfx' -CertStoreLocation 'Cert:\LocalMachine\My' -Password $password