【Windows】PowerShell で自己署名証明書を発行する手順

Windows OS では PowerShell のコマンドレットで自己署名証明書を発行することができます。

Active Directory 証明書サービスで証明機関を構築しなくとも、自己署名により手軽にサーバー証明書を発行することができます。

今回は Web サーバーなどで利用できるサーバー証明書の発行手順を紹介します。

 

自己署名証明書の発行手順(簡易版)

1) 管理者権限で PowerShell を開きます。

2) PowerShell にて以下のコマンドを実行します。

New-SelfSignedCertificate -subject <サブジェクト名>

コマンドの実行結果に、発行された自己署名証明書の情報が表示されます。

 

3) Windows キーを押しながら R キーを押し、[ファイル名を指定して実行] を開き、certlm.msc と入力して [OK] をクリックします。

4) 画面の左ペインより、[証明書 – ローカル コンピューター] – [個人] – [証明書] を選択し、作成された自己署名の証明書を確認します。

 

オプションでサブジェクト名のみを指定した場合、以下の設定で自己署名証明書は発行されます。

 有効期限   1 年
 拡張キー使用法  クライアント認証、サーバー認証
 公開鍵  RSA 2048 bit

既定の設定を変更して、自己署名証明書を発行したい場合は New-SelfSignedCertificate のコマンドレットにオプションを指定して発行します。
詳細は以下にご案内します。

 

自己署名証明書の発行手順(詳細版)

1) 管理者権限で PowerShell を開きます。

2) PowerShell にて以下のコマンドを実行します。

New-SelfSignedCertificate `
  -Type SSLServerAuthentication `
  -Subject “webserver01” `
  -DnsName “webserver01.contoso.com” `
  -KeyLength “4096”`
  -KeyExportPolicy Exportable `
  -NotAfter (Get-Date).AddYears(5)

※オプション数が多いのでバッククオート(`) を利用して複数行でコマンドを表記しています。
PowerShell においてバッククオートを行末に指定することで、複数行にわけてコマンドを表記できます。

コマンドの実行結果に、発行された自己署名証明書の情報が表示されます。

 

3) Windows キーを押しながら R キーを押し、[ファイル名を指定して実行] を開き、certlm.msc と入力して [OK] をクリックします。

4) 画面の左ペインより、[証明書 – ローカル コンピューター] – [個人] – [証明書] を選択し、作成された自己署名の証明書を確認します。

今回、New-SelfSignedCertificate コマンドに指定しているオプションは以下の通りです。

 Type  証明書の種類
 Subject サブジェクト名
 DnsName サブジェクト代替名 (DNS 名)
 KeyLength  鍵長 (公開鍵の長さ)
 KeyExportPolicy  秘密キーのエクスポート可否
 NotAfter  有効期間の終了

 

New-SelfSignedCertificate のコマンドレットで利用可能なオプションは、以下のマイクロソフトの公開情報もご参照ください。

https://docs.microsoft.com/en-us/powershell/module/pkiclient/new-selfsignedcertificate?view=win10-ps

 

また、発行した自己署名証明書をサーバー証明書として利用する場合、Web サーバーにアクセスするクライアントにも自己署名証明書を信頼できる証明書として配布する必要があります。

クライアントへ自己署名証明書を信頼できる証明書として配布する手順は、以下の記事もご参照ください。

【Windows】グループ ポリシーを用いたルート証明書の配布