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

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

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

## トラストポイント

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

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

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

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

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

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

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

### 外部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を作成するには次の手順を実行します。
このとき、ローカル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」という名前のトラストポイントを作成するものとします。

       AT-AMF-app(config)# crypto pki trustpoint myca
       Created trustpoint "myca".
       AT-AMF-app(ca-trustpoint)#

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

       AT-AMF-app(ca-trustpoint)# enrollment selfsigned

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

       AT-AMF-app(ca-trustpoint)# lifetime years 1

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

       AT-AMF-app(ca-trustpoint)# end
       AT-AMF-app# 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」を指定します。

       AT-AMF-app(config)# crypto pki trustpoint local
       Created trustpoint "local".
       Generating 2048-bit key for local CA...
       Automatically authenticated trustpoint "local".
       AT-AMF-app(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年にしたいときは次のように設定します。

       AT-AMF-app(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コマンドで確認できます。

    AT-AMF-app# 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コマンドで確認できます。

    AT-AMF-app# 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」を発行元として本製品のサーバー証明書を発行するには次のようにします。

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

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

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

    AT-AMF-app# 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トラストポイントモードに入ります。

       AT-AMF-app(config)# crypto pki trustpoint myca

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

       AT-AMF-app(ca-trustpoint)# rsakeypair myserverkey

   Note

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

       AT-AMF-app(ca-trustpoint)# rsakeypair longserverkey 4096

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

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

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

## 証明書の有効期間

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

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

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

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

       AT-AMF-app# show crypto pki certificates local
       ...
       Server certificate
       ...
       Fingerprint : 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...

       AT-AMF-app# no crypto pki certificate local 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...
       Deleted the certificate.

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

       AT-AMF-app# configure terminal
       AT-AMF-app(config)# crypto pki trustpoint local

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

       AT-AMF-app(ca-trustpoint)# lifetime years 1

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

       AT-AMF-app(ca-trustpoint)# end
       AT-AMF-app# 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を確認します。

       AT-AMF-app# show crypto pki certificates local
       ...
       Server certificate
       ...
       Fingerprint : 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...

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

       AT-AMF-app# no crypto pki certificate local 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...
       Deleted the certificate.

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

       AT-AMF-app# 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を確認します。

       AT-AMF-app# 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証明書の順に削除します。

       AT-AMF-app# no crypto pki certificate local 70483113 CC6EF618 4B18C838 2CDD8AA4 05BBD1A5
       ...
       Deleted the certificate.

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

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

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

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

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

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

       AT-AMF-app# crypto pki export local pem flash:/cacert.pem

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

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

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

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

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

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

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

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

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

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

         AT-AMF-app# 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」で答えてください。

         AT-AMF-app# 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」とします）に保存してください。

       AT-AMF-app# 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」で答えてください。

         AT-AMF-app# 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」で答えてください。

         AT-AMF-app# 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」の場合、次のようにしてインポートします。

      AT-AMF-app# 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.

      AT-AMF-app# 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」という名前であると仮定し、本製品のフラッシュメモリーからインポートします。

       AT-AMF-app# 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」という名前であると仮定し、本製品のフラッシュメモリーからインポートします。

       AT-AMF-app# 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