今日は証明書の最長有効期間についての話をしたいと思います。
certreq.exe –New –f c:\temp\win7.inf c:\temp\win7.req certreq.exe –Submit -q -f -config ca01.test.local\test-ca01-ca c:\temp\win7.req c:\temp\win7.cer |
上記の証明書発行コマンド(Certreq.exe –submit…)をCAサーバー上で実行する時に、以下のようなメッセージが出る場合があります。
テンプレート有効期間が CA が許可する証明書の最長有効期間よりも長いため、証明書の有効期間は <テンプレート名> 証明書テンプレートが指定するよりも短くなります。CA 証明書を更新するか、テンプレートの有効期間を短くするか、レジストリ有効期間を長くしてください。 |
メッセージ自体はエラーではありません。証明書が問題なく生成できます。ただし、作成できた証明書(win7.cer)の有効期限が証明書テンプレートで設定した有効期限と異なります。例えば、テンプレートで10年の有効期間を設定したのに、実際に作成できた証明書の有効期間が2年とか、5年未満になっていることがあります。
原因としては、証明書の有効期間が以下の3つ値と関連しているからです。
1、CAサーバー上のレジストリに設定された期間(既定2年)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>\ValidityPeriod HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CA Name>\ValidityPeriodUnits |
2、CAサーバーの有効期間
3、証明書テンプレートで設定された有効期間
1が2より、2が3より、優先順位が高いです。
例えば、
・2013年1月1日でルートCAサーバーを立てた。「このCAから生成された証明書の有効期間を選択」で5年に設定した。
・テンプレート作成で10年に設定した。
この場合、1~3の値は以下となります。
1、レジストリの有効期間が既定で2年
2、CAサーバーの有効期間は5年。(2013/01/01 ~ 2018/01/01)
3、テンプレートでの有効期間は10年。
●2013/06/01の時点でCertreqコマンドで証明書を生成した時に、1の制限が効くので、証明書の有効期間は2年(2013/06/01 ~ 2015/06/01)になる。
●1レジストリの値を10年に設定した場合、2の制限が適用される。有効期間は5年未満(2013/06/01 ~ 2018/01/01)になる。
●2CAの有効期間を15年に構成した場合(CAの有効期間:2013/01/01 ~ 2028/01/01)、3の制限が適用されるので、有効期間は10年(2013/06/01 ~ 2023/06/01)になる。
1のレジストリの有効期間の確認と設定はcertutilコマンドでもできます。
※確認 certutil –getreg ca\ValidityPeriod certutil –getreg ca\ValidityPeriodUnits ※設定 certutil –setreg ca\ValidityPeriodUnits 10 ※CertSvcサービスを再起動する |
参考情報
How to Create Certificates with a Longer Validity Period
この記事がお役にたちましたらシェアをお願いします:)
0 件のコメント:
コメントを投稿