ADCSをコマンドプロンプトで利用してみました

先日お伝えしたADFS用の証明書作成の方法ですが、IISを使い、要求を作成してからWeb登録機能を用いて発行を行うというサポートツールをふんだんに利用した方法となっていました。

http://mitomoha.hatenablog.com/entry/2019/08/20/011035

実は、これらの対応はCUIを利用すればIIS、Web登録を利用しなくても実行できるということを最近知りました。

今回はその方法を連携していきたいと思います。

以下を実施前に前回もお伝えしていますが、以下のコマンドで別名を付けられるようにしておきましょう。

certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2

追加したら証明機関の再起動が必要です。
net stop certsvc
net start certsvc

 

以下のサイトを参考に対応していっただけなのですが、有用なのでぜひ覚えておくとよいかと思います。

https://support.microsoft.com/ja-jp/help/931351/how-to-add-a-subject-alternative-name-to-a-secure-ldap-certificate

まず覚えておきたいのはこのコマンドです。
certreq

このコマンドはOSに付随しているコマンドなのでコマンドプロンプトを開くと利用することができます。
このコマンドで要求ファイルの作成と、証明機関へのリクエストと作成された証明書の受領が行えます。

以下の文が要求ファイルのもととなります。これをファイルにして保存しておきます。

意識したいのはVersionの部分でしょうか。
この部分がないとテンプレートの指定がうまくいかないようです。

[Version]

Signature="$Windows NT$

[NewRequest]
Subject = "CN=sts.contso.com" ; FQDN
Exportable = TRUE ; TRUE = Private key is exportable
KeyLength = 2048 ; Common key sizes: 512, 1024, 2048, 4096, 8192, 16384
KeySpec = 1 ; Key Exchange
KeyUsage = 0xA0 ; Digital Signature, Key Encipherment
MachineKeySet = True
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
ProviderType = 12
RequestType = CMC

[RequestAttributes]
CertificateTemplate = WebServer ; DisplayName
SAN="dns=sts.contso.com&dns=certauth.sts.contso.com"

 

Subjectの部分とSANについては、自身の利用したい内容に変える必要があります。

含められる項目の詳細は以下を参照するとよいでしょう。

 https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/certreq_1 

上記のファイルを保存したら以下のようなコマンドを実行します。

ファイル名をrequest.txtにした場合で証明書ファイルをcertnew.cerとした場合の例です。

certreq -new request.txt cert.req
certreq –submit cert.req certnew.cer

f:id:mohessu:20190824021716p:plain

たったこれだけで証明書が発行され、利用することができるようになりました。

f:id:mohessu:20190824030457p:plain

とても簡単なので、証明書を作成しようと思っている人は利用してみてくださいね。

音楽:悲愴