【 New-SelfSignedCertificate 】コマンドレット――証明書を作成するWindows PowerShell基本Tips(29)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「New-SelfSignedCertificate」コマンドレットを解説します。

» 2022年01月17日 05時00分 公開
[国井傑株式会社ソフィアネットワーク]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、自己署名証明書を作成する「New-SelfSignedCertificate」コマンドレットです。

New-SelfSignedCertificateコマンドレットとは?

 「New-SelfSignedCertificate」は、PowerShellを利用して自己署名証明書を作成するためのコマンドレットです。証明書は本来、認証局に依頼して作成しますが、内部的な利用目的で証明書が必要な場合などには、このコマンドレットで簡単に作成できます。

New-SelfSignedCertificateコマンドレットの書式

New-SelfSignedCertificate [オプション]


New-SelfSignedCertificateの主なオプション

オプション 意味
-Subject 証明書の発行先となる名前を指定する。省略可能
-DNSName 証明書の発行先となる名前を指定する。省略可能
-CertStoreLocation 証明書の保存先を指定する。省略可能
-NotAfter 証明書の有効期限を指定する。省略可能
-KeyExportPolicy 証明書のエクスポートの可否を指定する。省略可能


ユーザー用自己署名証明書を作成する

 New-SelfSignedCertificateコマンドレットで証明書を発行する場合、自己署名証明書に設定する発行先の名前には「-Subject」オプション、保存先となるストアの場所の定義には「-CertStoreLocation」オプションをそれぞれ指定します(画面1)。

コマンドレット実行例

New-SelfSignedCertificate -Subject "App1" -CertStoreLocation "Cert:\CurrentUser\My"

画面1 画面1 New-SelfSignedCertificateコマンドレットを実行し、「App1」という名前(発行先)の自己署名証明書を作成した。保存先には「ユーザーの証明書ストア」(Cert:\CurrentUser\My)を指定している。なお、「コンピューターの証明書ストア」を指定する場合は、パスとして「Cert:\CurrentUser\My」を指定する


発行先の名前を複数持つ証明書を作成する

 「SAN」(Subject Alternative Name:サブジェクト代替名)とも呼ばれる発行先の名前として、複数の名前を設定する場合は、-Subjectオプションの代わりに「-DNSName」オプションを指定します(画面2)。

コマンドレット実行例

New-SelfSignedCertificate -DNSName "www.fabrikam.com", "www.contoso.com" -CertStoreLocation "cert:\LocalMachine\My"

画面2 画面2 New-SelfSignedCertificateコマンドレットを実行し、-DNSNameオプションに続けて「www.fabrikam.com」と「www.contoso.com」を指定した


有効期限が100年の証明書を作成する

 New-SelfSignedCertificateコマンドレットのデフォルトでは、証明書の有効期限は「1年」に設定されます。しかし、「-NotAfter」オプションを使用することで、有効期限を自由に設定できます(画面3)。以下のコマンドレット実行例では、有効期限が「100年」の証明書を作成しています。

コマンドレット実行例

New-SelfSignedCertificate -Subject "App1" -CertStoreLocation "Cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(100)

画面3 画面3 コマンド実行例1と同様のコマンドレットを実行しているが、「-NotAfter」オプションに続けて「Get-Date」コマンドレットを実行し、今日から100年後の日付を設定している。こうすることで、100年後の日付を有効期限として設定できる


証明書ストアからエクスポート可能な証明書を作成する

 New-SelfSignedCertificateコマンドレットを実行して作成した証明書は、「デバイスの証明書ストア」に保存されます。デバイス障害に備えてバックアップデータを保存しておきたい場合は、エクスポート可能な状態で証明書を作成する必要があります。

 エクスポート可能な証明書を作成するには「-KeyExportPolicy」オプションを使用し、値に「Exportable」と指定してNew-SelfSignedCertificateコマンドレットを実行します(画面4)。

コマンドレット実行例

New-SelfSignedCertificate -Subject "App1" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable

画面4 画面4 コマンド実行例1と同様のコマンドレットを実行しているが、「-KeyExportPolicy」オプションを使用し、値に「Exportable」を指定することで証明書はファイルとしてエクスポートすることが可能になる


筆者紹介

国井 傑(くにい すぐる)

株式会社ソフィアネットワーク取締役。1997年からマイクロソフト認定トレーナーとして、Active DirectoryやActive Directoryフェデレーションサービス(AD FS)など、ID管理を中心としたトレーニングを提供している。2007年からMicrosoft MVP for Directory Servicesを連続して受賞。なお、テストで作成するユーザーアカウントには必ずサッカー選手の名前が登場するほどのサッカー好き。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。