[記事公開日]2025/10/30
🔐 certreqコマンドの使い方|証明書要求の作成・送信・インポートを行う方法
もくじ
はじめに
企業ネットワークやサーバー運用において、SSL/TLS通信を有効化したり、コード署名やクライアント認証を行うためには「デジタル証明書」が必要です。
この証明書を取得する際に利用するのが certreq(Certificate Request)コマンド です。
certreq を使うと、証明書要求ファイル(CSR)の作成、認証局(CA)への送信、証明書のインポートまでを一括管理できます。
この記事では、certreq コマンドの基本構文、主なオプション、実践的な運用例をわかりやすく解説します。
🛠 certreqコマンドとは?
| 項目 | 内容 |
|---|---|
| 役割 | 証明書要求(CSR)の作成・送信・応答処理を行う |
| 用途 | SSL/TLS、コード署名、クライアント証明書の発行要求 |
| 特徴 | GUI操作なしで自動化やスクリプト実行が可能 |
certreq は、Windowsに標準搭載されている証明書管理用コマンドです。
認証局(CA)とのやり取りをコマンドラインで行うことができ、Active Directory環境やスタンドアロンのCAにも対応しています。
📌 基本構文
certreq [オプション] [ファイル名]
💡 主なオプション一覧
| オプション | 説明 |
|---|---|
-new <infファイル> <reqファイル> |
INFファイルをもとにCSR(証明書要求)を作成 |
-submit <reqファイル> [CA名] |
作成した要求を認証局に送信 |
-retrieve <要求ID> <証明書ファイル> |
発行された証明書を取得 |
-accept <証明書ファイル> |
証明書をインポートして有効化 |
-policy <ポリシーファイル> |
CAのポリシー設定を指定 |
-attrib |
証明書要求の属性を追加指定 |
💡 主な使用例
| 操作内容 | コマンド例 | 説明 |
|---|---|---|
| CSRを作成 | certreq -new server.inf server.req |
INFテンプレートを基に証明書要求ファイルを作成 |
| CAへ要求送信 | certreq -submit server.req |
CAへ証明書要求を送信 |
| 証明書を取得 | certreq -retrieve 17 server.cer |
要求ID「17」の証明書を取得 |
| 証明書をインポート | certreq -accept server.cer |
取得した証明書をシステムに登録 |
⚙️ 応用的な使い方
1️⃣ INFファイルを利用したCSR作成
CSR作成には「INFファイル」という設定ファイルを使用します。
以下のように作成して、server.inf として保存します。
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=example.com, O=MyCompany, C=JP"
KeySpec = 1
KeyLength = 2048
Exportable = TRUE
MachineKeySet = TRUE
SMIME = FALSE
PrivateKeyArchive = FALSE
UserProtected = FALSE
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
RequestType = PKCS10
[Extensions]
2.5.29.17 = "dns=example.com&dns=www.example.com"
これをもとにCSRを生成:
certreq -new server.inf server.req
生成された server.req ファイルをCAに送信します。
2️⃣ スタンドアロンCAへの要求送信
Active Directoryに属さない環境でも、直接CAサーバー名を指定して要求を送信可能です。
certreq -submit -config "CA-SERVER01\\MyCA" server.req
3️⃣ 自動化スクリプトへの組み込み
複数サーバーで証明書を一括更新する場合:
@echo off
set REQFILE=C:\cert\server.req
set CERFILE=C:\cert\server.cer
certreq -submit %REQFILE%
certreq -accept %CERFILE%
定期的な証明書ローテーションにも活用できます。
⚠️ 注意点
| 注意点 | 説明 |
|---|---|
| 管理者権限が必要 | 証明書ストアへの登録操作には昇格権限が必要 |
| INFファイルの構文に注意 | セクション名や改行位置が誤っているとCSR生成に失敗する |
| CAとの通信が必要 | -submit 実行時にはネットワーク経路上の認証局に接続できる必要あり |
| 証明書の用途を正確に指定 | サーバー認証・コード署名など用途に応じた設定が必要 |
📊 まとめ表
| 操作内容 | コマンド例 | 説明 |
|---|---|---|
| CSRの作成 | certreq -new server.inf server.req |
証明書要求ファイルを生成 |
| CAへ送信 | certreq -submit server.req |
認証局に要求を送信 |
| 証明書取得 | certreq -retrieve 17 server.cer |
発行済み証明書を取得 |
| 証明書登録 | certreq -accept server.cer |
取得した証明書をインポート |
🔗 関連記事
-
⚙️ certutilコマンドで証明書ストアを管理する方法
-
🧠 cipherコマンドでファイルを暗号化する方法
-
💽 manage-bdeコマンドでBitLockerを制御する方法
-
🧩 gpupdateコマンドでポリシー変更を反映する方法
➡️ 同カテゴリ記事リスト
- 🔧 cmstpコマンドの使い方|接続マネージャーサービスプロファイルのインストールと管理方法
- 🔒 manage-bdeコマンドの使い方|BitLockerをコマンドラインで管理する方法
- 🔑 cipherコマンドの使い方|NTFS暗号化と復号化をコマンドラインで操作する方法
- 🔐 tpmvscmgrコマンドの使い方|仮想スマートカード(VSC)の作成・管理方法
- 🔐 seceditコマンドの使い方|セキュリティポリシーの適用と管理方法
- 🔐 certreqコマンドの使い方|証明書要求の作成・送信・インポートを行う方法
- 🔐 auditpolコマンドの使い方|監査ポリシーを確認・設定してセキュリティログを管理する方法
- 🔄 gpupdateコマンドの使い方|グループポリシーの即時更新方法
- 📜 certutilコマンドの使い方|証明書管理と暗号化機能をコマンドラインで操作する方法
さいごに
certreq コマンドは、証明書申請からインポートまでの一連の流れを自動化できる非常に便利なツールです。
GUIツールを使わずに迅速に処理できるため、サーバー管理やスクリプト運用に最適です。
SSL/TLSやクライアント認証を扱う場面では、このコマンドをマスターしておくと大いに役立ちます。
