北海道で在宅勤務のエンジニアRと申します。
昨日まで東京に出張しておりましたが、そこでサーバー証明書の有効期限を延長する方法がわからず少しハマったので残しておきます。
ハマった理由としては以下です。 ・サーバー証明書のデフォルトテンプレート(Webサーバーとか)は有効期限を延長できない ・テンプレートを指定したサーバー証明書の作成方法がわからない
色々ググって継ぎはぎでなんとか手順化できました。
環境としては以下です。 サーバーOS:Windows Server 2012 R2 CAの種類:エンタープライズCA(AD環境あり) 作成したい証明書:Webサーバーのサーバー証明書(IIS用)
■ CAの「ValidityPeriodUnits」レジストリ値を変更する
・[ファイル名を指定して実行]で[regedit]と入力し、[OK]をクリックする。
・[レジストリエディター]が表示されるので、以下階層まで選択する。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CAName>
・[ValidityPeriodUnits]を右クリックし、[修正]をクリックする。
・[値のデータ]に[10]を入力し、[OK]をクリックする。
・コマンドプロンプトで以下コマンドを実行し、証明機関サービスの再起動を実施する。
net stop certsvc net start certsvc
・コマンドプロンプトで以下コマンドを実行し、証明書の有効期限が10に変更されていることを確認する。 (エンタープライズCAの場合、デフォルトは2年です。)
certutil -getreg CA\ValidityPeriodUnits
■ 有効期限を変更した証明書テンプレートを複製する
・[証明機関]を開き、[証明書テンプレート]を右クリックし、[管理]をクリックする。
・[Webサーバー]を右クリックし、[テンプレートの複製]をクリックする。
・[全般]タブで以下を変更する。
テンプレート表示名:Webサーバー v2 (※他のテンプレートと重複しなければOK) テンプレート名:WebServerv2 (※他のテンプレートと重複しなければOK)
有効期限:10年
・[セキュリティ]タブで[Authenticated Users]を選択し、[登録]の[許可]にチェックを入れ、[OK]をクリックする。
・[証明機関]を開き、[証明書テンプレート]を右クリックし、[新規作成] - [発行する証明書テンプレート]をクリックする。
・[証明書テンプレートの選択]が表示されるので、複製した証明書テンプレート[Webサーバー v2]を選択し、[OK]をクリックする。
■ 証明書の要求(作成)を行う
・[ファイル名を指定して実行]で[mmc]と入力し、[OK]をクリックする。
・[ファイル] - [スナップインの追加]をクリックする。
・[証明書]を選択し、[追加]をクリックする。
・[証明書スナップイン]が表示されるので、[コンピューターアカウント]を選択し、[次へ]をクリックする
・[コンピューターの選択]が表示されるので、[ローカルコンピューター]を選択し、[完了]をクリックする。
・[スナップインの追加と削除]に戻るので、[OK]をクリックする。
・左ペインより[証明書] - [個人] - [証明書]を右クリックし、[すべてのタスク] - [新しい証明書の要求]をクリックする。
・[開始する前に]が表示されるので、[次へ]をクリックする。
・[証明書の登録ポリシーの選択]が表示されるので、[Active Directory 登録ポリシー]を選択し、[次へ]をクリックする。
・[証明書の要求]が表示されるので、[Webサーバー v2]にチェックを入れ、[この証明書を登録するには...]のリンクをクリックする。
・[証明書のプロパティ]が表示されるので、[サブジェクト]タブを選択する。
・[種類]に[共通名]を選択し、[値]に共通名を入力し、[追加]をクリックする。
(ここでいう共通名はURLに入力する値となります。ccf01というサーバ名、challenge-cf.localというドメインの場合、URLにccf01と入力する場合は共通名もccf01、URLにccf01.challenge-cf.localと入力する場合は共通名もccf01.challenge-cf.localを入力します。)
・[全般]タブを選択し、[フレンドリ名]に証明書の名前を入力し、[OK]をクリックする。
・[証明書の要求]に戻るので、[登録]をクリックする。
・[証明書インストールの結果]が表示されるので、[完了]をクリックする。
・左ペインより[証明書] - [個人] - [証明書]に作成した証明書が表示されるので、[有効期限]が10年になっていることを確認する。
(ルート証明書の有効期限が10年未満の場合、ルート証明書の有効期限と同じになります。)
■ 作成した証明書をIISにバインドする
・[インターネットインフォメーションサービス(IIS)マネージャー]を開き、[<サーバー名>] - [サイト] - [Default Web Site]を選択し、右ペインより[バインド]をクリックする。
・[サイトバインド]が表示されるので、[種類]が[https]、[ポート]が[443]、[IPアドレス]が[*]を選択し、[編集]をクリックする。
・[サイトバインドの編集]が表示されるので、[SSL証明書]で先ほど作成した[ccf01]を選択し、[OK]をクリックする。
以上が今回の手順です。
テンプレートの概念ってWindowsだけなんだろうか?などなど不明なこともあるので証明書もっと勉強せねば。。。