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 は適宜変更してください。
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=server1.example.xyz"
FriendlyName = "My Test Certificate"
KeyAlgorithm = RSA
KeyLength = 2048
HashAlgorithm = sha256
KeySpec = 1 ; Key Exchange – Required 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
[Version]
Signature="$Windows NT$"
[NewRequest]
Subject = "CN=client1.example.xyz"
FriendlyName = "My Test Certificate"
KeyAlgorithm = RSA
KeyLength = 2048
HashAlgorithm = sha256
KeySpec = 1 ; Key Exchange – Required 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” のフォルダを削除します。
メモ