# 運用・管理 / ローカルCA

本製品は電子証明書を発行する認証局（CA）としての機能（ローカルCA機能）を備えています。
ローカルCAが発行した証明書は本製品の各種機能で利用可能です。
Note

ローカルCAでは、発行済み証明書の失効機能はサポートしていません。

## トラストポイント

ローカルCA機能では「トラストポイント」と呼ばれる設定要素を使用します。
トラストポイントは、関連する証明書と鍵の一式を保存・管理するための格納場所です（crypto pki trustpointコマンドで作成）。
Note

他システムにおいて「証明書ストア」、「証明書レポジトリー」、「認証情報ストレージ」、「キーストア・トラストストア」などと呼ばれているものと類似する概念です。

証明書を使用する側の機能では、どの証明書を使用するかをトラストポイント名で指定します（機能によっては使用するトラストポイント名があらかじめ決まっており指定できないものもあります）。
トラストポイントはローカルCA機能とローカルCAが発行した証明書を利用する各種機能によって使用されます。
トラストポイントには次の情報が保存されます。

- A. ローカルCAの公開鍵証明書（ルートCA証明書）と秘密鍵
  ローカルCAが自身の秘密鍵で自己署名したルートCA証明書です。
  - ローカルCAは本製品のサーバー証明書を署名・発行するために秘密鍵を使用します。
  - 本製品に接続するクライアント側では、本製品が提示したサーバー証明書を検証するためにこのルートCA証明書を使用します。クライアントに配布するため、ルートCA証明書はPEM形式ファイルへのエクスポートが可能です。
  - クライアント証明書を利用する本製品側の機能では、接続してきたクライアントによって提示されたクライアント証明書を検証するためにこのルートCA証明書を使用します。
- B. 本製品の公開鍵証明書（サーバー証明書）と秘密鍵
  ローカルCAによって署名・発行された本製品のサーバー証明書です。
  - 本製品の各種機能は、接続してきたクライアントに対してこのサーバー証明書を提示します。

本章ではローカルCA用トラストポイントの設定方法について説明します。
なお、ローカルCA機能においては「トラストポイント」＝「ローカルCA」と見なせるため、以下の説明ではおもに「ローカルCA」の用語を使用していますが、証明書の保存場所という意味合いで「トラストポイント」を使用している箇所もあります。あらかじめご了承ください。

## ローカルCAの作成

ローカルCA機能を使用するには、最初にローカルCAに相当するトラストポイントを作成（初期設定）する必要があります。
ローカルCAの作成とは、具体的には次のことを指します。

1. ローカルCAの公開鍵ペア（秘密鍵と公開鍵）を作成する。
2. ローカルCAの自己署名ルートCA証明書を発行する。
   すなわち、手順1で作成した公開鍵の電子証明書を、手順1で作成した自身の秘密鍵で署名する。

ローカルCAを作成するには次の手順を実行します。
このとき、ローカルCAに付ける名前（トラストポイント名）が「local」かそれ以外かによって手順が異なります。
「local」という名前は特別扱いされ、その他の場合より手順が簡略化されます。
以下では最初に、「local」と「default-selfsigned」以外の場合を説明し、その後「local」の場合の手順を説明します。

#### 使用すべきトラストポイント名

#### 「local」「default-selfsigned」以外の手動作成

「local」「default-selfsigned」以外の名前を持つローカルCAを作成するには、以下の手順を実行します。
Note

「local」「default-selfsigned」以外の名前を持つローカルCAは、AMFネットワーク上でAT-Vista Manager EX（AVM EX）をTLSクライアント証明書で認証する場合にのみ使用できます（この用途には「local」「default-selfsigned」以外を使う必要があります）。それ以外の機能でローカルCAを使う場合は、次節で述べる手順 にしたがい、「local」という名前でローカルCAを別途作成してください。

1. crypto pki trustpointコマンドで「local」「default-selfsigned」以外の任意の名前を指定し、トラストポイントを作成します。
   ここでは例として「myca」という名前のトラストポイントを作成するものとします。

       awplus(config)# crypto pki trustpoint myca
       Created trustpoint "myca".
       awplus(ca-trustpoint)#

2. CAトラストポイントモードのenrollmentコマンドで証明書の追加方法をselfsigned（自己署名）に設定します。
   これにより「myca」はローカルCA用のトラストポイントとなります。

       awplus(ca-trustpoint)# enrollment selfsigned

3. ローカルCAが発行する証明書の有効期間はデフォルト5年です。
   これを変更したい場合はCAトラストポイントモードのlifetimeコマンドで希望する期間を設定します。変更不要な場合は本手順をスキップしてください。
   たとえば証明書の有効期間を1年にしたいときは次のように設定します。

       awplus(ca-trustpoint)# lifetime years 1

4. 特権EXECモードに移動してcrypto pki authenticateコマンドを実行し、ローカルCAの公開鍵ペアと自己署名ルートCA証明書を発行します。

       awplus(ca-trustpoint)# end
       awplus# crypto pki authenticate myca
       Generating 2048-bit key for local CA...
       Successfully authenticated trustpoint "myca".

ローカルCA用トラストポイント「myca」の作成は完了です。これで各機能が使用する証明書の発行準備が整いました。

#### 「local」の手動作成

ローカルCAの作成時、「local」という名前は特別扱いされ、作成手順が簡略化されます。
ローカルCA「local」を手動作成する場合の手順は次のとおりです。

1. crypto pki trustpointコマンドで「local」を指定します。

       awplus(config)# crypto pki trustpoint local
       Created trustpoint "local".
       Generating 2048-bit key for local CA...
       Automatically authenticated trustpoint "local".
       awplus(ca-trustpoint)#

   ローカルCAの名前として「local」を指定した場合は、crypto pki trustpointコマンドを実行するだけで、ローカルCAの公開鍵ペア生成と自己署名ルートCA証明書の発行が行われ、ローカルCAの作成が完了します。
   すなわち、「local」以外のローカルCAを作成するときに、enrollmentコマンドでselfsigned（自己署名）を指定し、crypto pki authenticateコマンドを実行したのと同じことが、「local」の手動作成時にはcrypto pki trustpointコマンドだけで完了します。
2. ローカルCAが発行する証明書の有効期間はデフォルト5年です。
   これを変更したい場合はCAトラストポイントモードのlifetimeコマンドで希望する期間を設定します。変更不要な場合は本手順をスキップしてください。
   たとえば証明書の有効期間を1年にしたいときは次のように設定します。

       awplus(ca-trustpoint)# lifetime years 1

   Note

   トラストポイント名が「local」の場合、crypto pki trustpointコマンドの実行時にルートCA証明書の発行が自動的に行われるため、ルートCA証明書の有効期間はデフォルトの5年になりますが、ローカルCA「local」として発行する他の証明書にはlifetimeコマンドで設定した有効期間が適用されます。
   ローカルCA「local」としてデフォルトの5年以外の有効期間を持つ証明書を発行したい場合は、lifetimeコマンドの設定後、「ルートCA証明書の再作成」の手順にしたがってルートCA証明書を再発行してください。

これで、各機能が使用する証明書の発行準備が整いました。
ローカルCA「local」は、各種機能で使用可能です。ただし、AMFネットワーク上でAT-Vista Manager EX（AVM EX）をTLSクライアント証明書で認証する場合は、「local」「default-selfsigned」以外のトラストポイント名を持つローカルCAが必要なため、前述の手順にしたがい、「local」「default-selfsigned」以外の名前でローカルCAを作成してください。

#### ローカルCAと証明書の確認

作成したローカルCAの情報は、show crypto pki trustpointコマンドで確認できます。

    awplus# show crypto pki trustpoint
    --------------------
    Trustpoint "myca"
       Type            : Self-signed certificate authority
       Root Certificate: B5AA9359 5A9B2833 785BAA15 C6DC803C 81446F6F
       Local Server    : The server is not enrolled to this trustpoint.

       Authentication and Enrollment Parameters
          Enrollment   : selfsigned

ローカルCAの証明書は、show crypto pki certificatesコマンドで確認できます。

    awplus# show crypto pki certificates

    --------------------
    Trustpoint "myca" Certificate Chain
    --------------------
    Self-signed root certificate
       Subject     : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAXXXXXXXXXXXXXXXX
       Issuer      : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAXXXXXXXXXXXXXXXX
       Algorithms  : Public Key : rsaEncryption, 2048 bits
                   : Signature  : sha256WithRSAEncryption
       Valid From  : Nov  9 08:40:35 2017 GMT
       Valid To    : Nov  7 08:40:35 2027 GMT
       Fingerprint : B5AA9359 5A9B2833 785BAA15 C6DC803C 81446F6F

## サーバー証明書の発行

各機能で使用する本製品の証明書（サーバー証明書）を発行するには、次の手順を実行します。

1. 本製品のサーバー証明書を発行するには、crypto pki enrollコマンドで発行元のローカルCAを指定します。
   たとえば、ローカルCA「local」を発行元として本製品のサーバー証明書を発行するには次のようにします。

       awplus# crypto pki enroll local
       Generating 2048-bit key "server-default"...
       Successfully enrolled the local server.

   同コマンドの初回実行時には、「server-default」という名前で識別される本製品の公開鍵ペア（秘密鍵と公開鍵）が自動的に生成され、その公開鍵証明書をローカルCAの秘密鍵で署名して、サーバー証明書の発行が完了します。

発行したサーバー証明書の情報は、show crypto pki certificatesコマンドで確認できます。

    awplus# show crypto pki certificates

    --------------------
    Trustpoint "local" Certificate Chain
    --------------------
    Server certificate
       Subject     : /O=AlliedWare Plus/CN=awplus
       Issuer      : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAXXXXXXXXXXXXXXXX
       Algorithms  : Public Key : rsaEncryption, 2048 bits
                   : Signature  : sha256WithRSAEncryption
       Valid From  : Nov  9 09:04:48 2017 GMT
       Valid To    : Nov  8 09:04:48 2022 GMT
       Fingerprint : 61DEDC23 AFD1BCAA 1AC8575F EC3CC342 E99930DE

    Self-signed root certificate
       Subject     : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAXXXXXXXXXXXXXXXX
       Issuer      : /O=Allied Telesis, Inc./CN=AlliedWarePlusCAXXXXXXXXXXXXXXXX
       Algorithms  : Public Key : rsaEncryption, 2048 bits
                   : Signature  : sha256WithRSAEncryption
       Valid From  : Nov  9 08:53:04 2017 GMT
       Valid To    : Nov  7 08:53:04 2027 GMT
       Fingerprint : 79DF0F8B DA5B190F A38AFDE9 9EEE5BD9 48FC8E6E

なお、その後、別の名前のローカルCAでサーバー証明書を発行する場合も、デフォルトでは同じ公開鍵ペア（「server-default」という名前で識別される公開鍵ペア）が使われます。その際、すでに「server-default」という公開鍵ペアが生成済みであればそれを使い、公開鍵ペア「server-default」が存在していない場合は新規に生成します。
ローカルCAごとに異なる公開鍵ペアのサーバー証明書を発行したい場合は、以下の手順で発行対象の公開鍵ペアを明示的に指定してからサーバー証明書を発行してください。
たとえば、ローカルCA「myca」からは、デフォルトの「server-default」とは異なる公開鍵ペアを対象にサーバー証明書を発行したい場合は、次のようにします。
なお、ここでは、ローカルCA「myca」は作成済みであると仮定します。

1. crypto pki trustpointコマンドで作成済みのローカルCA名「myca」を指定し、CAトラストポイントモードに入ります。

       awplus(config)# crypto pki trustpoint myca

2. rsakeypairコマンドでサーバー証明書の発行対象とする公開鍵ペアの名前を指定します。このとき「server-default」以外の任意の名前を指定してください。
   ここでは例として、サーバーの公開鍵ペア名として「myserverkey」を指定します。

       awplus(ca-trustpoint)# rsakeypair myserverkey

   Note

   サーバー公開鍵ペアはデフォルトで2048ビット長になります。これを変更したい場合は、次のようにrsakeypairコマンドのオプションパラメーターで鍵の長さをビットで指定してください。有効範囲は1024～16384ビットです。

       awplus(ca-trustpoint)# rsakeypair longserverkey 4096

3. 特権EXECモードに移動し、crypto pki enrollコマンドを実行して、ローカルCA「myca」からサーバー証明書を発行します。

       awplus# crypto pki enroll myca
       Generating 2048-bit key "myserverkey"...
       Successfully enrolled the local server.

   これにより、デフォルトの「server-default」の代わりに、「myserverkey」という名前で識別される公開鍵ペアが生成され、この公開鍵を対象に本製品のサーバー証明書が発行されます。

## ルートCA証明書の配布

本製品に接続する他の装置やソフトウェアが本製品の証明書（サーバー証明書）を検証するためには、ローカルCAの証明書（ルートCA証明書）をそれらにインストールしておく必要があります。
そのためには、ローカルCAの証明書をファイルに書き出し、該当装置/ソフトウェアの管理者に配布する必要があります。以下、その手順を説明します。

1. crypto pki export pemコマンドを実行して、ローカルCAの証明書をPEM形式のファイルに書き出します。書き出し先のファイル名は任意ですが、一般的には拡張子を.cerか.crtにしておくと他の装置やソフトウェアへの取り込み時に便利です。

       awplus# crypto pki export local pem flash:/localca.cer

2. 書き出したPEM形式ファイル（ここではflash:/localca.cer）を該当装置/ソフトウェアの管理者に渡し、インストールを依頼してください。

## 証明書の有効期間

ローカルCAが発行する証明書のデフォルト有効期間はそれぞれ以下のとおりです。

- ルートCA証明書：5年（ファームウェアバージョン5.5.3-1.x以前で発行したものは10年）
- サーバー証明書：5年

新規発行する証明書の有効期間を変更するには次の設定を行います。

1. サーバー証明書を発行済みの場合は、サーバー証明書をいったん削除します。
   show crypto pki certificatesコマンドでサーバー証明書のFingerprintを確認し、no crypto pki certificateコマンドでサーバー証明書を削除してください。
   サーバー証明書を発行していない場合は本手順をスキップして手順2に進んでください。

       awplus# show crypto pki certificates local
       ...
       Server certificate
       ...
       Fingerprint : 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...

       awplus# no crypto pki certificate local 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...
       Deleted the certificate.

2. crypto pki trustpointコマンドで対象のローカルCA用トラストポイントを指定します。

       awplus# configure terminal
       awplus(config)# crypto pki trustpoint local

3. CAトラストポイントモードのlifetimeコマンドで希望する期間を設定します。
   たとえば証明書の有効期間を1年にしたいときは次のように設定します。

       awplus(ca-trustpoint)# lifetime years 1

4. サーバー証明書を再発行します。
   再発行したサーバー証明書には手順3で設定した有効期間が適用されます。

       awplus(ca-trustpoint)# end
       awplus# crypto pki enroll local
       Using private key "server-default"...
       Successfully enrolled the local server.

設定は以上です。
新しい有効期間はこれ以降新規に発行する証明書から適用されます。
すでに発行済みの証明書の有効期間を変更したい場合は、該当証明書を再作成してください。
なお、ローカルCA用トラストポイントの作成時に有効期間変更の設定を行えば、最初から任意の有効期間で証明書を発行することができます。
その手順については下記をご参照ください。

- 「local」「default-selfsigned」以外の手動作成
- 「local」の手動作成

## 証明書の再作成

ローカルCAが発行する証明書の有効期限が切れた場合や、新しい有効期間で証明書を作り直したい場合は、以下の手順にしたがって新しい証明書を作成し、必要に応じてクライアントに配布してください。

### サーバー証明書の再作成

サーバー証明書の再作成は以下の手順で行います。

1. show crypto pki certificatesコマンドでサーバー証明書のFingerprintを確認します。

       awplus# show crypto pki certificates local
       ...
       Server certificate
       ...
       Fingerprint : 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...

2. no crypto pki certificateコマンドを実行して、サーバー証明書を削除します。

       awplus# no crypto pki certificate local 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...
       Deleted the certificate.

3. サーバー証明書を再発行します。
   これには、crypto pki enrollコマンドで対象のローカルCA用トラストポイント名を指定します。

       awplus# crypto pki enroll local
       Using private key "server-default"...
       Successfully enrolled the local server.

Note

サーバー証明書のみ更新した場合、クライアントへの再配布は不要です。

### ルートCA証明書の再作成

ローカルCAのルートCA証明書を再作成した場合は、同CAが発行した証明書はすべて使用できなくなります。
以下の手順にしたがってルートCA証明書を再作成した後、他の証明書を再作成してください。

1. show crypto pki certificatesコマンドでサーバー証明書、ルートCA証明書のFingerprintを確認します。

       awplus# show crypto pki certificates local
       ...
       Server certificate
       ...
          Fingerprint : 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5

       Self-signed root certificate
       ...
          Fingerprint : 0AEF70A9 43B9DCC5 4CCA7771 2341872D 9321A2CF

2. no crypto pki certificateコマンドを実行し、サーバー証明書、ルートCA証明書の順に削除します。

       awplus# no crypto pki certificate local 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...
       Deleted the certificate.

       awplus# no crypto pki certificate local 0AEF70A9 43B9DCC5 4CCA7771 2341872D 9321A2CF
       ...
       Deleted the certificate.
       Deleted the trustpoint key.

3. crypto pki authenticateコマンドを実行し、ローカルCAの公開鍵ペアと自己署名ルートCA証明書を再作成します。

       awplus# crypto pki authenticate local
       Generating 2048-bit key for local CA...
       Successfully authenticated trustpoint "local".

4. crypto pki enrollコマンドを実行し、サーバー証明書を再作成します。

       awplus# crypto pki enroll local
       Using private key "server-default"...
       Successfully enrolled the local server.

5. crypto pki export pemコマンドを実行して、ローカルCAの証明書をPEM形式のファイルに書き出します。

       awplus# crypto pki export local pem flash:/cacert.pem

6. 書き出したPEM形式ファイル（ここではflash:/cacert.pem）をクライアントに配布してください。