New-selfsignedcertificate 有効期限

New-selfsignedcertificate 有効期限

オレオレ SSL 証明書(自己署名証明書)を作るワンライナーです。

$ openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:2048 -subj /CN=localhost -keyout server.key -out server.crt

上記のコマンドで server.key(秘密鍵) および server.crt(自己署名証明書) が作成されます。有効期限は 10 年(3650 日)。Common Name が決まっている場合は CN=localhost のところを FQDN に置き換えてもいいでしょう。

オレオレ証明書を作るだけならこれで終わりですが、せっかくなので秘密鍵(Private Key)と証明書署名要求(CSR)、証明書(CRT)を 1 つずつ順番に作る方法も紹介します。

目次

  1. 秘密鍵を作成
  2. 証明書署名要求を作成
  3. 自己署名証明書を作成

秘密鍵を作成

秘密鍵(Private Key)を作成

$ openssl genrsa 2048 > server.key

ファイルの中身を確認

$ openssl rsa -text < server.key
Private-Key: (2048 bit)
...

証明書署名要求を作成

証明書署名要求(CSR)を作成

$ openssl req -new -key server.key > server.csr

コマンドを実行するといろいろ入力を求められますが、全部デフォルト Enter 連打で OK。オレオレ証明書なので、ちゃんとした値を入れてもブラウザから警告が出ます。FQDN が決まっていたら Common Name で FQDN を入力してもいいです。

Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

ファイルの中身を確認

Subject に入力した値が表示されます

$ openssl req -text < server.csr
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=AU, ST=Some-State, O=Internet Widgits Pty Ltd
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)

自己署名証明書を作成

自己署名証明書(CRT)を作成。これまでに作成した秘密鍵と証明書署名要求に対して、自分で署名を行います。有効期限は 10 年 (3650 日)。

$ openssl x509 -days 3650 -req -sha256 -signkey server.key < server.csr > server.crt

ファイルの中身を確認

$ openssl x509 -text < server.crt
Certificate:
Data:
Version: 1 (0x0)
Serial Number:
ed:3d:bf:00:21:4c:ed:17
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=AU, ST=Some-State, O=Internet Widgits Pty Ltd
Validity
Not Before: Feb 11 14:22:25 2017 GMT
Not After : Feb 11 14:22:25 2027 GMT
Subject: C=AU, ST=Some-State, O=Internet Widgits Pty Ltd
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (2048 bit)

Issuer は認証局の値。Subject は 先ほどの CSR で入力した値。自己署名なので Issuer と Subject に同じ値が入っています。
Validity は有効期限です。

北海道で在宅勤務のエンジニアRと申します。

昨日まで東京に出張しておりましたが、そこでサーバー証明書の有効期限を延長する方法がわからず少しハマったので残しておきます。

ハマった理由としては以下です。 ・サーバー証明書のデフォルトテンプレート(Webサーバーとか)は有効期限を延長できない ・テンプレートを指定したサーバー証明書の作成方法がわからない

色々ググって継ぎはぎでなんとか手順化できました。

環境としては以下です。 サーバーOS:Windows Server 2012 R2 CAの種類:エンタープライズCA(AD環境あり) 作成したい証明書:Webサーバーのサーバー証明書(IIS用)

■ CAの「ValidityPeriodUnits」レジストリ値を変更する

・[ファイル名を指定して実行]で[regedit]と入力し、[OK]をクリックする。

New-selfsignedcertificate 有効期限

・[レジストリエディター]が表示されるので、以下階層まで選択する。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\<CAName>

New-selfsignedcertificate 有効期限

・[ValidityPeriodUnits]を右クリックし、[修正]をクリックする。

New-selfsignedcertificate 有効期限

・[値のデータ]に[10]を入力し、[OK]をクリックする。

New-selfsignedcertificate 有効期限

・コマンドプロンプトで以下コマンドを実行し、証明機関サービスの再起動を実施する。

net stop certsvc net start certsvc

New-selfsignedcertificate 有効期限

・コマンドプロンプトで以下コマンドを実行し、証明書の有効期限が10に変更されていることを確認する。 (エンタープライズCAの場合、デフォルトは2年です。)

certutil -getreg CA\ValidityPeriodUnits

New-selfsignedcertificate 有効期限

■ 有効期限を変更した証明書テンプレートを複製する

・[証明機関]を開き、[証明書テンプレート]を右クリックし、[管理]をクリックする。

New-selfsignedcertificate 有効期限

・[Webサーバー]を右クリックし、[テンプレートの複製]をクリックする。

New-selfsignedcertificate 有効期限

・[全般]タブで以下を変更する。

テンプレート表示名:Webサーバー v2 (※他のテンプレートと重複しなければOK) テンプレート名:WebServerv2 (※他のテンプレートと重複しなければOK)

有効期限:10年

New-selfsignedcertificate 有効期限

・[セキュリティ]タブで[Authenticated Users]を選択し、[登録]の[許可]にチェックを入れ、[OK]をクリックする。

New-selfsignedcertificate 有効期限

・[証明機関]を開き、[証明書テンプレート]を右クリックし、[新規作成] - [発行する証明書テンプレート]をクリックする。

New-selfsignedcertificate 有効期限

・[証明書テンプレートの選択]が表示されるので、複製した証明書テンプレート[Webサーバー v2]を選択し、[OK]をクリックする。

New-selfsignedcertificate 有効期限

■ 証明書の要求(作成)を行う

・[ファイル名を指定して実行]で[mmc]と入力し、[OK]をクリックする。

New-selfsignedcertificate 有効期限

・[ファイル] - [スナップインの追加]をクリックする。

New-selfsignedcertificate 有効期限

・[証明書]を選択し、[追加]をクリックする。

New-selfsignedcertificate 有効期限

・[証明書スナップイン]が表示されるので、[コンピューターアカウント]を選択し、[次へ]をクリックする

New-selfsignedcertificate 有効期限

・[コンピューターの選択]が表示されるので、[ローカルコンピューター]を選択し、[完了]をクリックする。

New-selfsignedcertificate 有効期限

・[スナップインの追加と削除]に戻るので、[OK]をクリックする。

New-selfsignedcertificate 有効期限

・左ペインより[証明書] - [個人] - [証明書]を右クリックし、[すべてのタスク] - [新しい証明書の要求]をクリックする。

New-selfsignedcertificate 有効期限

・[開始する前に]が表示されるので、[次へ]をクリックする。

New-selfsignedcertificate 有効期限

・[証明書の登録ポリシーの選択]が表示されるので、[Active Directory 登録ポリシー]を選択し、[次へ]をクリックする。

New-selfsignedcertificate 有効期限

・[証明書の要求]が表示されるので、[Webサーバー v2]にチェックを入れ、[この証明書を登録するには...]のリンクをクリックする。

New-selfsignedcertificate 有効期限

・[証明書のプロパティ]が表示されるので、[サブジェクト]タブを選択する。

・[種類]に[共通名]を選択し、[値]に共通名を入力し、[追加]をクリックする。

(ここでいう共通名はURLに入力する値となります。ccf01というサーバ名、challenge-cf.localというドメインの場合、URLにccf01と入力する場合は共通名もccf01、URLにccf01.challenge-cf.localと入力する場合は共通名もccf01.challenge-cf.localを入力します。)

New-selfsignedcertificate 有効期限

・[全般]タブを選択し、[フレンドリ名]に証明書の名前を入力し、[OK]をクリックする。

New-selfsignedcertificate 有効期限

・[証明書の要求]に戻るので、[登録]をクリックする。

New-selfsignedcertificate 有効期限

・[証明書インストールの結果]が表示されるので、[完了]をクリックする。

New-selfsignedcertificate 有効期限

・左ペインより[証明書] - [個人] - [証明書]に作成した証明書が表示されるので、[有効期限]が10年になっていることを確認する。

(ルート証明書の有効期限が10年未満の場合、ルート証明書の有効期限と同じになります。)

New-selfsignedcertificate 有効期限

■ 作成した証明書をIISにバインドする

・[インターネットインフォメーションサービス(IIS)マネージャー]を開き、[<サーバー名>] - [サイト] - [Default Web Site]を選択し、右ペインより[バインド]をクリックする。

New-selfsignedcertificate 有効期限

・[サイトバインド]が表示されるので、[種類]が[https]、[ポート]が[443]、[IPアドレス]が[*]を選択し、[編集]をクリックする。

New-selfsignedcertificate 有効期限

・[サイトバインドの編集]が表示されるので、[SSL証明書]で先ほど作成した[ccf01]を選択し、[OK]をクリックする。

New-selfsignedcertificate 有効期限

以上が今回の手順です。

テンプレートの概念ってWindowsだけなんだろうか?などなど不明なこともあるので証明書もっと勉強せねば。。。

#Windows #CA

New

証明書は 1 年間のみ有効です。

IIS証明書の作成有効期限は?

なお、IISマネージャー画面で作成した自己署名証明書有効期限は1年です。

CAの有効期限は?

既定では、スタンドアロン証明機関 CA によって発行される証明書有効期間は 1 年間です。 1 年後、証明書有効期限が切れ、使用が信頼されません。 中間または発行元 CA によって発行された証明書の既定の有効期限をオーバーライドする必要がある場合があります。

自己署名証明書の有効期限は?

自己署名証明書有効期限は1年間であり期限切れ 前に新たに生成する必要があり、その生成のためのマニュアルです。

New