1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ADCS(スタンドアロンCA)認証局と証明書作成

Last updated at Posted at 2025-11-23

1. 認証機関(スタンドアロン)の準備

1-1. ADCSインストール

証明機関と証明機関Web登録をインストール
参考
https://pkiwithadcs.com/configuring_standalone_root_ca/

1-2. CRL配布ポイント(CDP)・機関情報アクセス(AIA)

認証機関のCAプロパティで
CRL配布ポイント(CDP)を http 以外で配布しないようにチェックボックスを外す
機関情報アクセス(AIA)を http 以外で配布しないようにチェックボックスを外す
サーバ名はIPアドレスに修正してもいいかも

1-3. 署名する証明書の有効期限を100年にする

コマンド(管理者)
certutil -setreg CA\ValidityPeriod Years
certutil -setreg CA\ValidityPeriodUnits 100
net stop certsvc
net start certsvc

2. CA証明書をインポート

2-1. CA証明書の取得 -> 証明書作成端末で実施

コマンド(管理者)
certutil -config "<CAホストorIP>\<CA名>" -ca.cert ca.der

2-2. DER形式をBASE64形式に変換(必要に応じて)

コマンド(管理者)
certutil -encode ca.der ca.cer

3. CSR作成から証明書インポートまで

3-1. INFファイルの準備 -> 証明書作成端末で実施

テキストエディタ を開き、以下の INF ファイルサンプルの内容をコピーして 貼り付けます。
Subject と continue は適宜変更してください。

server.inf
[Version] 
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=server1.example.xyz"
FriendlyName = "My Test Certificate"
KeyAlgorithm = RSA
KeyLength = 2048
HashAlgorithm = sha256
KeySpec = 1      ; Key ExchangeRequired for encryption
KeyUsage = 0xA0  ; Digital Signature, Key Encipherment
MachineKeySet = True  ; machine or user keystore. 
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
SMIME = FALSE ; Whether to add an extension for S/MIME emails.
RequestType = CMC  ; or PKCS10.
Exportable = TRUE

[EnhancedKeyUsageExtension]
; If you are using an enterprise CA the EnhancedKeyUsageExtension section can be omitted 
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication

[Extensions]
2.5.29.17="{text}" ; SAN
_continue_ = "dns=*.example.xyz"
_continue_ = "ipaddress=192.168.122.1"
Critical = 2.5.29.17
client.inf
[Version] 
Signature="$Windows NT$"

[NewRequest]
Subject = "CN=client1.example.xyz"
FriendlyName = "My Test Certificate"
KeyAlgorithm = RSA
KeyLength = 2048
HashAlgorithm = sha256
KeySpec = 1      ; Key ExchangeRequired for encryption
KeyUsage = 0xA0  ; Digital Signature, Key Encipherment
MachineKeySet = False  ; machine or user keystore. 
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
SMIME = FALSE ; Whether to add an extension for S/MIME emails.
RequestType = CMC  ; or PKCS10.
Exportable = TRUE

[EnhancedKeyUsageExtension]
; If you are using an enterprise CA the EnhancedKeyUsageExtension section can be omitted 
OID=1.3.6.1.5.5.7.3.2 ; Client Authentication

[Extensions]
2.5.29.17="{text}" ; SAN
_continue_ = "email=client1@example.xyz"
Critical = 2.5.29.17

各属性の意味はこちらを参照してください。

3-2. CSRファイルの作成 -> 証明書作成端末で実施

コマンド
certreq -new -f server.inf server.req

server.inf が、事前に作成した INF ファイル名
server.req が、変換後に作成される CSR ファイル名

server.req が作成される
最終的な証明書ペアの保存場所は infファイルの MachineKeySet で指定
-user or -machine オプションでも可能

3-3. CAへ要求送信 -> 証明書作成端末で実施

コマンド(管理者)
certreq -config "<CAホストorIP>\<CA名>" -submit server.req

要求IDが通知され、保留状態になる
ADCSのGUIで確認可能

CAサーバーが動作しているかは以下で確認できる

コマンド(管理者)
certutil -config "<CAホストorIP>\<CA名>" -ping

3-4. 証明書作成(CAで署名) -> CA端末で実施

コマンド(管理者)
certutil -retrieve <要求ID>

ADCSのGUIで署名するほうが簡単

保留中の要求一覧を表示

コマンド(管理者)
certutil -view Queue

ADCSのGUIで確認するほうが簡単

3-5. 証明書を取得 -> 証明書作成端末で実施

コマンド
certreq -config "<CAホストorIP>\<CA名>" -retrieve <要求ID> server.cer

server.cer が作成される

3-6. 証明書をインポート -> 証明書作成端末で実施

コマンド
certreq -accept server.cer

証明書ストアに保存される
保存先は ユーザ or ローカルコンピュータの 個人

4. スタンドアロンCAを作り直したい時

C:\ Windows\System32
System32 のフォルダの配下にある “CertLog” と “CertSrv” のフォルダを削除します。

メモ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?