majishini

メモとか。

PowerShellの証明書ストア

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

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

  • Cert:\CurrentUser\TrustedPublisher
  • Cert:\CurrentUser\ClientAuthIssuer
  • Cert:\CurrentUser\Root
  • Cert:\CurrentUser\UserDS
  • Cert:\CurrentUser\CA
  • Cert:\CurrentUser\REQUEST
  • Cert:\CurrentUser\AuthRoot
  • Cert:\CurrentUser\MSIEHistoryJournal
  • Cert:\CurrentUser\TrustedPeople
  • Cert:\CurrentUser\ADDRESSBOOK
  • Cert:\CurrentUser\Local NonRemovable Certificates
  • Cert:\CurrentUser\My
  • Cert:\CurrentUser\SmartCardRoot
  • Cert:\CurrentUser\Trust
  • Cert:\CurrentUser\Disallowed

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

  • Cert:\LocalMachine\TestSignRoot
  • Cert:\LocalMachine\ClientAuthIssuer
  • Cert:\LocalMachine\Remote Desktop
  • Cert:\LocalMachine\Root
  • Cert:\LocalMachine\TrustedDevices
  • Cert:\LocalMachine\MSIEHistoryJournal
  • Cert:\LocalMachine\CA
  • Cert:\LocalMachine\TrustedAppRoot
  • Cert:\LocalMachine\eSIM Certification Authorities
  • Cert:\LocalMachine\AuthRoot
  • Cert:\LocalMachine\Windows Live ID Token Issuer
  • Cert:\LocalMachine\TrustedPublisher
  • Cert:\LocalMachine\AAD Token Issuer
  • Cert:\LocalMachine\FlightRoot
  • Cert:\LocalMachine\WebHosting
  • Cert:\LocalMachine\TrustedPeople
  • Cert:\LocalMachine\AddressBook
  • Cert:\LocalMachine\Local NonRemovable Certificates
  • Cert:\LocalMachine\My
  • Cert:\LocalMachine\SmartCardRoot
  • Cert:\LocalMachine\Trust
  • Cert:\LocalMachine\Disallowed
  • Cert:\LocalMachine\Homegroup Machine Certificates
  • Cert:\LocalMachine\REQUEST

よく使うもの

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