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

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

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

## トラストポイント

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

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

証明書を使用する側の機能では、どの証明書を使用するかをトラストポイント名で指定します（機能によっては使用するトラストポイント名があらかじめ決まっており指定できないものもあります）。
Note

ファームウェアバージョン5.4.6-0.1以前で作成した証明書（SHA1署名付きの1024ビットRSAキー）を含むトラストポイントを適用したローカルRADIUSサーバーは、当該証明書を読み込まずに起動するため、TLS/EAPを使用する認証が動作しません。
その場合は、当該トラストポイントを削除した上で、新たにトラストポイントを作成し、ローカルRADIUSサーバーに適用してください。

トラストポイントには大きく分けて次の2種類があります。

- ローカルCA用トラストポイント - ローカルCA機能（本製品）によって発行された証明書を使うためのトラストポイント
- 外部CA用トラストポイント - 外部CAによって発行された証明書を使うためのトラストポイント

### ローカルCA用トラストポイント

ローカルCA用のトラストポイントには次の情報が保存されます。

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

### 外部CA用トラストポイント

外部CA用のトラストポイントには次の情報が保存されます。

- A. 外部CAの公開鍵証明書（ルートCA証明書、中間CA証明書）
  外部CAのルートCA証明書や中間CA証明書をインポートして保存します。
  - 本製品が他のシステムのサーバー証明書やクライアント証明書を検証するために本CA証明書を使用します。
- B. 本製品の公開鍵証明書（サーバー証明書）と秘密鍵
  外部CAによって署名・発行された本製品のサーバー証明書をインポートして保存します。
  外部CAを使用する場合、本製品は自ら秘密鍵と証明書発行要求（CSR）を生成しますが、証明書の発行は外部CAに依頼する必要があります。
  - 本製品が他のシステムに接続するときにこのサーバー証明書を提示します。

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

## ローカルCAの作成

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

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

ローカルCAの作成には複数の方法がありますが、ローカルRADIUSサーバーを使用する環境では、radius-server localコマンドを初めて実行したときに「local」という名前のローカルCA用トラストポイントが自動作成され、サーバー証明書の発行も自動的に行われるため、通常はローカルCAの作成を手動で行う必要はありません。
ただし、ローカルRADIUSサーバーを使わない環境や、ローカルCAを再セットアップする場合には手動での作成が必要です。
以下、それぞれの方法について解説します。

### ローカルCA「local」の自動生成

初めてローカルRADIUSサーバーの設定を行うときには、「local」という名前（トラストポイント名）を持つローカルCAの作成が自動的に行われ、さらにローカルRADIUSサーバーの動作に必要なサーバー証明書も自動的に発行されます。
radius-server localコマンドの初回実行時に自動実行されるローカルCA関連コマンドは次のとおりです。

    crypto pki trustpoint local
    end
    crypto pki enroll local

これにより次のことが行われます。

1. crypto pki trustpointコマンドにより、「local」という名前のローカルCAを作成します（自己署名ルートCA証明書を発行）。
2. crypto pki enrollコマンドにより、ローカルCA「local」からローカルRADIUSサーバーの証明書（サーバー証明書）を発行します。

ローカルRADIUSサーバー機能を使用するときは、自動生成されるローカルCA「local」を必ず使用してください。
なお、ローカルCA「local」は、ローカルRADIUSサーバー以外の機能でも使用可能です。ただし、AMFネットワーク上でAT-Vista Manager EX（AVM EX）をTLSクライアント証明書で認証する場合、ローカルCA「local」は使えません。この用途には、後述する手順 にしたがい、「local」以外の名前でローカルCAを作成してください。

### 機器固有のサーバー証明書「default-selfsigned」の自動生成

本製品起動時に「default-selfsigned」というトラストポイント名で、機器固有のサーバー証明書が自動的に作成されます。
この証明書は、AT-Vista Managerでの管理を行う場合に内部的に使用されるものです。
そのため、ローカルCA機能を使用して任意の証明書を作成する場合は、「default-selfsigned」をトラストポイント名に使用しないようにしてください。
また、AMFネットワーク上でAT-Vista Manager EX（AVM EX）をTLSクライアント証明書で認証する場合も「default-selfsigned」は使えません。
前述したように、上記の場合は「local」も使えませんので、この用途には、後述する手順 にしたがい、「local」「default-selfsigned」以外の名前でローカルCAを作成してください。

### ローカルCAの手動作成

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

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

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

#### 「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」の手動作成

ローカルRADIUSサーバーの初回設定時に自動生成されるのと同じトラストポイント名「local」は、ローカルCAを手動作成する場合にも特別扱いされ、作成手順が簡略化されます。
ローカル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

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

各機能で使用する本製品の証明書（サーバー証明書）を発行するには、次の手順を実行します。
なお、前述のとおり、ローカルRADIUSサーバーを使用する環境では、ローカルRADIUSサーバーの初回設定時にローカルCA「local」が自動作成され、また、ローカルRADIUSサーバーの動作に必要な本製品のサーバー証明書も自動的に発行されるため、以下の手順は基本的に不要ですが、ローカルRADIUSサーバーを使わない場合や、他の機能では別のローカルCAが発行したサーバー証明書を使いたい場合には以下の手順が必要です。

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」（RSA公開鍵ペア）と「server-default-ecdsa」（ECDSA公開鍵ペア）という名前で識別される本製品の公開鍵ペア（秘密鍵と公開鍵）が自動的に生成され、その公開鍵証明書をローカル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」（RSA公開鍵ペア）と「server-default-ecdsa」（ECDSA公開鍵ペア）という名前で識別される公開鍵ペア）が使われます。その際、すでに「server-default」と「server-default-ecdsa」が生成済みであればそれを使い、生成済みでない場合は新規に生成します。
ローカルCAごとに異なる公開鍵ペアのサーバー証明書を発行したい場合は、以下の手順で発行対象の公開鍵ペアを明示的に指定してからサーバー証明書を発行してください。
たとえば、ローカルCA「myca」からは、デフォルトの「server-default」と「server-default-ecdsa」とは異なる公開鍵ペアを対象にサーバー証明書を発行したい場合は、次のようにします。
なお、ここでは、ローカル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

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

       awplus(ca-trustpoint)# rsakeypair longserverkey 4096

   Note

   サーバー公開鍵ペアの生成にECDSAアルゴリズムを使用する場合、eckeypairコマンドを使用してください。また、ECDSAサーバー公開鍵ペアはデフォルトで384ビット長（P-384）になります。

       awplus(ca-trustpoint)# eckeypair myserverkey

   これを変更したい場合は、次のようにコマンドのオプションパラメーターで鍵の長さをビットで指定してください。使用できる鍵長は、256ビット（P-256）、384ビット（P-384）、521ビット（P-521）です。

       awplus(ca-trustpoint)# eckeypair longserverkey 521

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

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

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

## クライアント証明書（ユーザー証明書）の発行と配布

以下の機能を使用する場合は、ローカルRADIUSサーバーに登録したユーザーの電子証明書（クライアント証明書）を発行し、ローカルCAの電子証明書（ルートCA証明書）とともに、該当ユーザーに配布する必要があります。

- 802.1X認証（EAP-TLS）

ローカルRADIUSサーバーに登録しているユーザーの電子証明書を発行し、ユーザーに配布するには、次のようにします。

1. crypto pki enroll userコマンドで発行対象のユーザー名を指定します。これにより、該当ユーザーのクライアント証明書（ユーザー証明書）が発行され、秘密鍵とともにローカルCA用のトラストポイントに格納されます。
   なお、同コマンドの実行時には、クライアント証明書の書き出し時にファイルを暗号化するためのパスワードを聞かれるため、確認を含め2回同じパスワード文字列を入力してください。空文字列や「abort」を入力した場合、および、入力した文字列が一致しない場合は発行が中止されます。

       awplus# crypto pki enroll local user user11
       Enter an export passphrase, or "abort" to cancel.
       XXXXXXXXXXXX （実際には表示されません）
       Enter the export passphrase again.
       XXXXXXXXXXXX （実際には表示されません）
       Generating a user private key for "user1"...
       Successfully enrolled user "user1".
       The PKCS#12 file is ready to export.

2. 発行したクライアント証明書とユーザーの秘密鍵、およびローカルCAのルートCA証明書をcrypto pki export pkcs12コマンドでPKCS#12形式のファイルに書き出します。書き出し先のファイル名は任意ですが、拡張子を.p12にしておくとPC上で扱いやすいでしょう。

       awplus# crypto pki export local pkcs12 user11 rsa flash:/user11.p12

3. 書き出したPKCS#12形式ファイル（ここではflash:/user11.p12）をユーザーに渡します。その際、crypto pki enroll userコマンド実行時に指定したパスワードを安全な方法で伝えることも忘れないでください。

Note

ローカルCAでは証明書失効リスト（CRL）の発行をサポートしていないため、ユーザー証明書を無効にするには、ローカルCAの再セットアップが必要となります（crypto pki trustpointコマンドをno形式、通常形式の順に実行後、機器を再起動する）。なお、ローカルCAを再セットアップすると、それ以前に発行した証明書はすべて無効になり、再発行が必要になるので注意してください。

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

### クライアント証明書（ユーザー証明書）の再作成

ローカルRADIUSサーバーに登録したユーザーの電子証明書（クライアント証明書）は以下の手順で再作成します。

1. crypto pki enroll userコマンドで対象のローカルCA用トラストポイント名と再作成対象のユーザー名を指定します。
   これにより、該当ユーザーのクライアント証明書（ユーザー証明書）が再作成され、秘密鍵とともにローカルCA用のトラストポイントに格納されます。
   なお、同コマンドの実行時には、クライアント証明書の書き出し時にファイルを暗号化するためのパスワードを聞かれるため、確認を含め2回同じパスワード文字列を入力してください。空文字列や「abort」を入力した場合、および、入力した文字列が一致しない場合は発行が中止されます。

       awplus# crypto pki enroll local user user11
       Enter an export passphrase, or "abort" to cancel.
       XXXXXXXXXXXX （実際には表示されません）
       Enter the export passphrase again.
       XXXXXXXXXXXX （実際には表示されません）
       Generating a user private key for "user1"...
       Successfully enrolled user "user1".
       The PKCS#12 file is ready to export.

2. 発行したクライアント証明書とユーザーの秘密鍵、およびローカルCAのルートCA証明書をcrypto pki export pkcs12コマンドでPKCS#12形式のファイルに書き出します。書き出し先のファイル名は任意ですが、拡張子を.p12にしておくとPC上で扱いやすいでしょう。

       awplus# crypto pki export local pkcs12 user11 rsa flash:/user11.p12

3. 書き出したPKCS#12形式ファイル（ここではflash:/user11.p12）をユーザーに配布してください。その際、crypto pki enroll userコマンド実行時に指定したパスワードを安全な方法で伝えることも忘れないでください。

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

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

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

       Local RADIUS server user enrollments ready for export
          user11

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

   クライアント証明書の削除は不要です。

       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）をクライアントに配布してください。
7. クライアント証明書を使用している場合は、さらにcrypto pki enroll userコマンドでクライアント証明書（ユーザー証明書）を再作成します。
   なお、同コマンドの実行時には、クライアント証明書の書き出し時にファイルを暗号化するためのパスワードを聞かれるため、確認を含め2回同じパスワード文字列を入力してください。空文字列や「abort」を入力した場合、および、入力した文字列が一致しない場合は発行が中止されます。

       awplus# crypto pki enroll local user user11
       Enter an export passphrase, or "abort" to cancel.
       XXXXXXXXXXXX （実際には表示されません）
       Enter the export passphrase again.
       XXXXXXXXXXXX （実際には表示されません）
       Generating a user private key for "user1"...
       Successfully enrolled user "user1".
       The PKCS#12 file is ready to export.

8. 発行したクライアント証明書をcrypto pki export pkcs12コマンドでPKCS#12形式のファイルに書き出します。書き出し先のファイル名は任意ですが、拡張子を.p12にしておくとPC上で扱いやすいでしょう。

       awplus# crypto pki export local pkcs12 user11 rsa flash:/user11.p12

9. 書き出したPKCS#12形式ファイル（ここではflash:/user11.p12）をユーザーに配布してください。その際、crypto pki enroll userコマンド実行時に指定したパスワードを安全な方法で伝えることも忘れないでください。

## 外部CA用トラストポイントの設定

外部CAによって発行された証明書を利用可能な機能には以下のものがあります。

- プロキシーノード・ホワイトリストサーバー間の通信暗号化（AMFアプリケーションプロキシー ホワイトリスト機能）

Note

ECDSAアルゴリズムで作成された公開鍵証明書の署名要求（CSR）は未サポートとなります。

外部CA用トラストポイントは、公開鍵証明書の署名要求（CSR）を手動で送信する方法と、証明書登録を自動化するプロトコルを使用して送信する方法があります。

### 公開鍵証明書の署名要求（CSR）を手動で送信する

外部CAによって発行された証明書を使うために必要なトラストポイントの基本的な作成手順は以下のとおりです。詳細については機能ごとの解説ページもご参照ください。

1. 外部CA用トラストポイントを作成します。
   crypto pki trustpointコマンドで「local」「default-selfsigned」以外の任意の名前を指定してCAトラストポイントモードに移動したら、外部CA用トラストポイントであることを示すために、enrollmentコマンドでキーワード「terminal」を指定してください。

       awplus(config)# crypto pki trustpoint extca
       Created trustpoint "extca".
       awplus(ca-trustpoint)# enrollment terminal
       awplus(ca-trustpoint)# end

2. 外部CAの証明書をインポートします。
   これには2つの方法があります。いずれか適切なほうを実施してください。
   - 外部CAの証明書ファイル（PEM形式）を本製品のフラッシュメモリーにコピーしてから、コマンドで同ファイルを指定する方法
     ここでは、外部CA（ルートCA）の証明書ファイルが「extca_cert.pem」という名前であると仮定します。
     crypto pki import pemコマンドを実行して証明書の情報が表示されたら、内容を確認し、「Accept this certificate?」に「y」で答えてください。

         awplus# crypto pki import extca pem extca_cert.pem
         Copying...
         Successful operation
         Subject     : /C=JP/O=EXAMPLE/CN=SampleRootCA
         Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
         Algorithms  : Public Key : rsaEncryption, 2048 bits
                     : Signature  : sha256WithRSAEncryption
         Valid From  : Apr  7 05:32:30 2023 GMT
         Valid To    : Apr  4 05:32:30 2033 GMT
         Fingerprint : D51BB535 8CBCFE2C BDD6E56B 759BB5C9 4CF9DCBF
         This is a self-signed CA certificate.
         The certificate has been validated successfully.
         Accept this certificate? (y/n): y
         The certificate was successfully imported.

   - 外部CAの証明書ファイル（PEM形式）をPCのテキストエディター等で開き、同ファイルの内容をコピー＆ペーストでCLIに入力する方法
     crypto pki authenticateコマンドを実行すると「Paste the certificate PEM file into the terminal. Type "abort" to cancel.」のようなメッセージが表示されるので、外部CA証明書ファイルをテキストエディターで開き、`-----BEGIN CERTIFICATE-----` から `-----END CERTIFICATE-----` の行までをクリップボードにコピーしてCLIにペーストし、「Enter」キーを押します。
     証明書の情報が表示されたら、内容を確認し、「Accept this certificate?」に「y」で答えてください。

         awplus# crypto pki authenticate extca
         Paste the certificate PEM file into the terminal.
         Type "abort" to cancel.
         -----BEGIN CERTIFICATE-----
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
         ...
         xaPuyjGcQ3kCjW32sO0InQxjLPCp/celKKRZbIwETAor
         -----END CERTIFICATE-----
         Complete ("END CERTIFICATE" detected).
         Subject     : /C=JP/O=EXAMPLE/CN=SampleRootCA
         Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
         Algorithms  : Public Key : rsaEncryption, 2048 bits
                     : Signature  : sha256WithRSAEncryption
         Valid From  : Apr  7 05:32:30 2023 GMT
         Valid To    : Apr  4 05:32:30 2033 GMT
         Fingerprint : D51BB535 8CBCFE2C BDD6E56B 759BB5C9 4CF9DCBF
         This is a self-signed CA certificate.
         The certificate has been validated successfully.
         Accept this certificate? (y/n): y
         Successfully authenticated trustpoint "extca".

3. 本製品の公開鍵ペア（秘密鍵と公開鍵）を生成し、公開鍵証明書の署名要求（CSR）を生成します。
   crypto pki enrollコマンドを実行すると、次のようにCSRの内容が出力されるので、`-----BEGIN CERTIFICATE REQUEST-----` の行から`-----END CERTIFICATE REQUEST-----` の行までをクリップボードにコピーしてPC上のファイル（ここでは「my_csr.pem」とします）に保存してください。

       awplus# crypto pki enroll extca
       Generating 2048-bit key "server-default"...
       Cut and paste this request to the certificate authority:
       -----------------------------------------------------------------
       -----BEGIN CERTIFICATE REQUEST-----
       XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
       ...
       sQCD7gbOkrMSEpDCSdB85P5on2Gs+CwpHsYlhA==
       -----END CERTIFICATE REQUEST-----
       -----------------------------------------------------------------

4. 前の手順でPC上に保存したCSRファイル（本例ではmy_csr.pem）を外部CAに渡し、証明書の発行を依頼してください。
   ここでは、外部CAが発行した本製品の証明書を my_cert.pem という名前のPEM形式ファイルとして入手したものと仮定します。
5. 外部CAによって発行された本製品の証明書をインポートします。
   これには2つの方法があります。いずれか適切なほうを実施してください。
   - 本製品の証明書ファイル（PEM形式）を本製品のフラッシュメモリーにコピーしてから、コマンドで同ファイルを指定する方法
     crypto pki import pemコマンドを実行して証明書の情報が表示されたら、内容を確認し、「Accept this certificate?」に「y」で答えてください。

         awplus# crypto pki import extca pem extca_cert.pem
         Copying...
         Successful operation
         Subject     : /O=AlliedWare Plus/CN=awplus
         Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
         Algorithms  : Public Key : rsaEncryption, 2048 bits
                     : Signature  : sha256WithRSAEncryption
         Valid From  : Apr 19 07:41:24 2023 GMT
         Valid To    : Apr 18 07:41:24 2024 GMT
         Fingerprint : DDDDDDDD EEEEEEEE AAAAAAAA DDDDDDDD BBBBBBBB
         This is not a valid CA certificate. Attempting to import as a server certificate.
         The certificate has been validated successfully.
         Accept this certificate? (y/n): y
         The certificate was successfully imported.

   - 本製品の証明書ファイル（PEM形式）をPCのテキストエディター等で開き、同ファイルの内容をコピー＆ペーストでCLIに入力する方法
     crypto pki import pemコマンドにキーワード「terminal」を指定して実行すると「Paste the certificate PEM file into the terminal. Type "abort" to cancel.」のようなメッセージが表示されるので、本製品の証明書ファイルをテキストエディターで開き、`-----BEGIN CERTIFICATE-----` から `-----END CERTIFICATE-----` の行までをクリップボードにコピーしてCLIにペーストし、「Enter」キーを押します。
     証明書の情報が表示されたら、内容を確認し、「Accept this certificate?」に「y」で答えてください。

         awplus# crypto pki import extca terminal
         Paste the certificate PEM file into the terminal.
         Type "abort" to cancel.
         -----BEGIN CERTIFICATE-----
         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
         ...
         WF/C9/ijoy0UIjDFJms6uBo5gw==
         -----END CERTIFICATE-----

         Complete ("END CERTIFICATE" detected).
         Subject     : /O=AlliedWare Plus/CN=awplus
         Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
         Algorithms  : Public Key : rsaEncryption, 2048 bits
                     : Signature  : sha256WithRSAEncryption
         Valid From  : Apr 19 07:41:24 2023 GMT
         Valid To    : Apr 18 07:41:24 2024 GMT
         Fingerprint : DDDDDDDD EEEEEEEE AAAAAAAA DDDDDDDD BBBBBBBB
         This is not a valid CA certificate. Attempting to import as a server certificate.
         The certificate has been validated successfully.
         Accept this certificate? (y/n): y
         The certificate was successfully imported.

Note

本製品の証明書を発行する外部CAがルートCAではなく中間CAの場合は、証明書チェーン（外部CAからルートCAまで）を構成するすべてのCAの証明書をインポートする必要があります。

- 手順1：外部CA（中間CA）からルートCAまでのすべてCAの証明書を本製品のフラッシュメモリーにコピーしてください。
- 手順2：CA証明書のインポートはルートCAから順に（上位から下位の順に）行ってください。
  たとえば、証明書チェーンが「外部CA（中間CA） → ルートCA」の2段階になっており、外部CA（中間CA）の証明書が「intca_cert.pem」、ルートCAの証明書が「rootca_cert.pem」の場合、次のようにしてインポートします。

      awplus# crypto pki import extca pem rootca_cert.pem
      ...
      Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
      Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
      ...
      This is a self-signed CA certificate.
      The certificate has been validated successfully.
      Accept this certificate? (y/n): y
      The certificate was successfully imported.

      awplus# crypto pki import extca pem intca_cert.pem
      ...
      Issuer      : /C=JP/O=EXAMPLE/CN=SampleIntermediateCA
      Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
      ...
      This is an intermediate CA certificate.
      The certificate has been validated successfully.
      Accept this certificate? (y/n): y
      The certificate was successfully imported.

### 公開鍵証明書の署名要求（CSR）を自動的に送信する

以下のプロトコルを使用することで、公開鍵証明書の署名要求（CSR）を自動的に送信し、本製品と外部CA間で証明書データをコピー＆ペーストする作業を簡略化することが可能です。

#### EST（Enrollment over Secure Transport）を使用する

##### 基本仕様

本機能の基本仕様は以下の通りです。
Note

本機能は、HTTPS通信上で行われます。

Note

公開鍵証明書の署名要求（CSR）の送信は、以下のうち、有効期限により近いタイミングで自動的に実行されます。定期実行前にCSRを手動で送信することも可能です。

- 有効期限の3日前
- 有効期間の90%を過ぎたとき

Note

ESTサーバーとのHTTPS通信は、トラストポイント「default-system」に保存されたCA証明書を使用します。本製品の公開鍵証明書は、「default-system」以外のトラストポイントから発行する必要があります。

##### 設定方法

以下にトラストポイント「estca」を作成し、証明書の取得方法にESTを指定する設定方法を説明します。なお、ESTサーバーとの通信で使用するIPの設定は終わっているものとします。

1. 特権EXECモードから、ESTサーバーの証明書を検証可能なCA証明書をトラストポイント「default-system」にインポートします。ここでは、CA証明書ファイルが「est_cert.pem」という名前であると仮定し、本製品のフラッシュメモリーからインポートします。

       awplus# crypto pki import default-system pem est_cert.pem
       Copying...
       Successful operation
       Subject     : /C=JP/O=EXAMPLE/CN=SampleRootCA
       Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
       Algorithms  : Public Key : rsaEncryption, 2048 bits
                   : Signature  : sha256WithRSAEncryption
       Valid From  : Apr  7 05:32:30 2023 GMT
       Valid To    : Apr  4 05:32:30 2033 GMT
       Fingerprint : D51BB535 8CBCFE2C BDD6E56B 759BB5C9 4CF9DCBF
       This is a self-signed CA certificate.
       The certificate has been validated successfully.
       Accept this certificate? (y/n): y
       The certificate was successfully imported.

   Note

   トラストポイント「default-system」は、初期設定で作成されています。ESTサーバーとのHTTPS通信で使用するCA証明書は、必ずトラストポイント「default-system」にインポートしてください。「default-system」以外のトラストポイントにインポートした場合、ESTサーバーと通信することはできません。

   Note

   外部CA（ルートCA）の証明書ファイルをインポートする方法は、外部CA用トラストポイントの設定をご確認ください。

2. グローバルコンフィグモードに移行した後、トラストポイント「estca」を作成し、CAトラストポイントモードに移行します。これには、crypto pki trustpointコマンドを使用します。

       awplus# configuration terminal
       awplus(config)# crypto pki trustpoint estca

   Note

   公開鍵証明書を発行するトラストポイント名は、「default-system」以外の任意の文字列を指定してください。

3. トラストポイント「estca」における証明書の取得方法にESTを指定します。これにはenrollmentコマンドでestパラメータを指定します。

       awplus(ca-trustpoint)# enrollment est

4. ESTサーバーのURLを指定します。これにはest-urlコマンドを使用します。

       awplus(ca-trustpoint)# est-url https://example.com

5. ESTサーバーとのやり取りにユーザー名、パスワードが必要な場合、est-usernameコマンド、est-passwordコマンドを使用します。

       awplus(ca-trustpoint)# est-username xxx
       awplus(ca-trustpoint)# est-password yyy
       awplus(ca-trustpoint)# end

6. 特権EXECモードに戻り、トラストポイント「estca」を使用可能な状態にします。これにはcrypto pki authenticateコマンドを使用します。

       awplus# crypto pki authenticate estca

設定は以上です。
crypto pki enrollコマンドを使用することで、公開鍵証明書の署名要求（CSR）を自動更新前に送信することが可能です。

    awplus# crypto pki enroll estca

トラストポイント「default-system」からESTサーバーとのHTTPS通信で使用するCA証明書を削除するには、no crypto pki certificateコマンドを使用します。

    awplus# no crypto pki certificate default-system D3AFAE23 AFDB11BA 2F4AD129 FE148EC7 00CB4C84

ESTが有効なトラストポイントおよび「default-system」の詳細は、show crypto pki trustpointコマンドで確認できます。

    awplus# show crypto pki trustpoint default-system

#### SCEP（Simple Certificate Enrollment Protocol）を使用する

##### 基本仕様

本機能の基本仕様は以下の通りです。
Note

本機能は、HTTPSまたはHTTP通信上で行われます。

Note

公開鍵証明書の署名要求（CSR）の送信は、以下のうち、有効期限により近いタイミングで自動的に実行されます。定期実行前にCSRを手動で送信することも可能です。

- 有効期限の3日前
- 有効期間の90%を過ぎたとき

Note

SCEPサーバーとのHTTPS通信は、トラストポイント「default-system」に保存されたCA証明書を使用します。本製品の公開鍵証明書は、「default-system」以外のトラストポイントから発行する必要があります。

##### 設定方法

以下にトラストポイント「scepca」を作成し、証明書の取得方法にSCEPを指定する設定方法を説明します。なお、SCEPサーバーとの通信で使用するIPの設定は終わっているものとします。

1. 特権EXECモードから、SCEPサーバーの証明書を検証可能なCA証明書をトラストポイント「default-system」にインポートします。ここでは、CA証明書ファイルが「scep_cert.pem」という名前であると仮定し、本製品のフラッシュメモリーからインポートします。

       awplus# crypto pki import default-system pem scep_cert.pem
       Copying...
       Successful operation
       Subject     : /C=JP/O=EXAMPLE/CN=SampleRootCA
       Issuer      : /C=JP/O=EXAMPLE/CN=SampleRootCA
       Algorithms  : Public Key : rsaEncryption, 2048 bits
                   : Signature  : sha256WithRSAEncryption
       Valid From  : Apr  7 05:32:30 2023 GMT
       Valid To    : Apr  4 05:32:30 2033 GMT
       Fingerprint : D51BB535 8CBCFE2C BDD6E56B 759BB5C9 4CF9DCBF
       This is a self-signed CA certificate.
       The certificate has been validated successfully.
       Accept this certificate? (y/n): y
       The certificate was successfully imported.

   Note

   トラストポイント「default-system」は、初期設定で作成されています。SCEPサーバーとのHTTPS通信で使用するCA証明書は、必ずトラストポイント「default-system」にインポートしてください。「default-system」以外のトラストポイントにインポートした場合、SCEPサーバーと通信することはできません。

   Note

   scep-urlコマンドでhttp://から始まるURLを指定した場合、本手順は不要です。

   Note

   外部CA（ルートCA）の証明書ファイルをインポートする方法は、外部CA用トラストポイントの設定をご確認ください。

2. グローバルコンフィグモードに移行した後、トラストポイント「scepca」を作成し、CAトラストポイントモードに移行します。これには、crypto pki trustpointコマンドを使用します。

       awplus# configuration terminal
       awplus(config)# crypto pki trustpoint scepca

   Note

   公開鍵証明書を発行するトラストポイント名は、「default-system」以外の任意の文字列を指定してください。

3. トラストポイント「scepca」における証明書の取得方法にSCEPを指定します。これにはenrollmentコマンドでscepパラメータを指定します。

       awplus(ca-trustpoint)# enrollment scep

4. SCEPサーバーのURLを指定します。これにはscep-urlコマンドを使用します。

       awplus(ca-trustpoint)# scep-url https://example.com/test.exe

5. SCEPサーバーとのやり取りにパスワード、認証局名が必要な場合、scep-passwordコマンド、scep-ca-nameコマンドを使用します。

       awplus(ca-trustpoint)# scep-password xxx
       awplus(ca-trustpoint)# scep-ca-name yyy
       awplus(ca-trustpoint)# end

6. 特権EXECモードに戻り、トラストポイント「scepca」を使用可能な状態にします。これにはcrypto pki authenticateコマンドを使用します。

       awplus# crypto pki authenticate scepca

設定は以上です。
crypto pki enrollコマンドを使用することで、公開鍵証明書の署名要求（CSR）を自動更新前に送信することが可能です。

    awplus# crypto pki enroll scepca

トラストポイント「default-system」からSCEPサーバーとのHTTPS通信で使用するCA証明書を削除するには、no crypto pki certificateコマンドを使用します。

    awplus# no crypto pki certificate default-system D3AFAE23 AFDB11BA 2F4AD129 FE148EC7 00CB4C84

SCEPが有効なトラストポイントおよび「default-system」の詳細は、show crypto pki trustpointコマンドで確認できます。

    awplus# show crypto pki trustpoint default-system