📄

Cisco IOS XEデバイスでの自己署名証明書の発行

に公開

Cisco IOS XEデバイスで自己署名証明書 (Self-Signed Certificate)を作成する手順を整理します。

自己署名証明書はサーバー証明書の一種で、自身で署名を行います。

代表的なユースケースとしては「IOS XEデバイスのWeb UI (HTTPS)へのアクセス」で利用されます。

Routing & Switching分野では、従来からCLIによる管理が主流で、Web UI ([no] ip http secure-server)は不要サービスとして無効化されることが多くあります。
一方で、無線LANコントローラーであるCatalyst 9800 (IOS XE)ではWeb UIでの設定変更が主体となるため、サーバー証明書の管理が欠かせません。

検証時の情報

本記事の内容は下記の環境で検証を行っております。

  • Catalyst 8000V (Cisco Modeling Labs版) v17.15.1a

  • Catalyst 9800-CL (vSphere版) v17.15.3a

前提知識

自己署名証明書は、条件を満たすと自動的に生成されるパターンがあります。

具体例としては「(config)# ip http secure-server」にてWeb UI用のHTTPS Serverを有効化すると、「TP-self-signed-3781896559」のような名称の自己署名証明書が自動的に生成されます。

Catalyst 9800ではWeb UIによる管理が主流であるため、既に自己署名証明書が生成されている場合があります。


自己署名証明書が自動生成されるケース

自己署名証明書が自動生成されるケースのログ (展開して表示)
ios-xe(config)# ip http secure-server 

*Aug 12 01:11:07.977: %PKI-6-TRUSTPOINT_CREATE: Trustpoint: TP-self-signed-3781896559 created succesfully
ios-xe(config)#
*Aug 12 01:11:10.387: %CRYPTO_ENGINE-5-KEY_ADDITION: A key named TP-self-signed-3781896559 has been generated or imported by crypto-engine
*Aug 12 01:11:10.640: %PKI-4-NOCONFIGAUTOSAVE: Configuration was modified.  Issue "write memory" to save new IOS PKI configuration
ios-xe(config)#
ios-xe(config)# end
ios-xe#
*Aug 12 01:11:27.363: %SYS-5-CONFIG_I: Configured from console by console
ios-xe#

考慮点

ネットワーク機器の筐体障害で交換を行うと、コンフィグのリストアが必要になりますが、「自己署名証明書の"秘密鍵"」(RSA Key Pairの"秘密鍵")の情報はコンフィグ上 (running-config)には表示されません。

秘密鍵をバックアップできるようにするには、RSA Key PairをExportableの状態にしておく必要があります。

RSA Key Pairのバックアップやリストアに関しては、下記の記事を参照してください。

設定作業の要点

  1. 自己署名証明書の秘密鍵を生成します。(RSA Key Pairを生成します。)
  2. 自己署名証明書の定義を設定します。(Trustpointを設定します。)
  3. 自己署名証明書の定義に基づいて実際に発行します。(enrollします。)
  4. ユースケースの一例: Web UIでの自己署名証明書の使用

作業前提: 時刻の設定

自己署名証明書の期間」は「発行タイミングから10年で固定」となるため、IOS XEデバイスの時刻を正確に合わせておく必要があります。
システム更改サイクルは長くても5年から7年が多いため、証明書の有効期間が10年あれば、一般的には十分な時間があります。

configure terminal

ntp server 210.173.160.27 prefer
ntp server 210.173.160.57
ntp server 210.173.160.87

clock timezone JST 9 0

end

write memory

時刻が同期されているかを確認します。

show ntp associations

show clock

設定手順

Label名とTrustpoint名の整理

設定に名称を付ける必要があるため、自己署名証明書 (Self-Signed Certificate)であるのを示す名称にしています。

項目
サーバー証明書の秘密鍵のLabel名 SELF-SIGNED-CERT_KEY
サーバー証明書のTrustpoint名 SELF-SIGNED-CERT_TP

既存の自己署名証明書の確認

既存のTrustpointの設定に enrollment selfsigned のものがあるかを確認します。

「自動生成される自己署名証明書」に絞って確認する方法は下記になります。

show running-config | section crypto pki trustpoint TP-self-signed-


既存の自己署名証明書の確認

参考例のログ (展開して表示)
ios-xe# show running-config | section crypto pki trustpoint TP-self-signed-
crypto pki trustpoint TP-self-signed-3781896559
 enrollment selfsigned
 subject-name cn=IOS-Self-Signed-Certificate-3781896559
 revocation-check none
 rsakeypair TP-self-signed-3781896559
 hash sha512
ios-xe#

自己署名証明書用の秘密鍵の生成

秘密鍵をバックアップする場合は、Exportableの状態にする必要があります。本例では筐体障害時に新しい機器にリストアできるように exportable のキーワードを付与しています。

本コマンドは特権モードで実行します。

crypto key generate rsa general-keys modulus 2048 exportable label SELF-SIGNED-CERT_KEY

必要に応じて、下記の記事を参考にRSA Key Pairのバックアップを取っておいてください。

自己署名証明書の定義

自己署名証明書のパラメーターの定義になります。

subject-name のCN (Common Name)や、subject-alt-name のSAN (Subject Alternative Name)は環境に応じて読み替えが必要です。

configure terminal

crypto pki trustpoint SELF-SIGNED-CERT_TP
 enrollment selfsigned
 subject-name CN=ios-xe.lab.test
 subject-alt-name ios-xe.lab.test
 revocation-check none
 rsakeypair SELF-SIGNED-CERT_KEY
 hash sha512
 serial-number none
 ip-address none

 show

 exit


自己署名証明書の”定義”のパラメーター調整

  • 自己署名証明書は第三者の認証局によって発行されないため、CRLやOCSPによる失効確認は行いません。revocation-check には none を指定して失効確認をスキップします。

  • SAN (Subject Alternative Name)を複数指定したい場合は、subject-alt-name の設定値を , (カンマ)で区切ってリストします。

  • ip-address はCN (Common Name)にIPアドレス情報を追加します。最近のWebブラウザはCNではなくSANの情報を見るため none にして無効化しております。

自己署名証明書の発行

証明書の定義 (Trustpointの設定)に基づき、自己署名証明書を発行します。

明示的に指定していない項目があると、対話形式で入力を求められます。

crypto pki enroll SELF-SIGNED-CERT_TP


自己署名証明書の発行

既に自己署名証明書があるか否かに関わらず、「Generate Self Signed Router Certificate? [yes/no]:」と問われます。「自己署名証明書を生成するか」と問われているため yes で答えます。

ユースケースの一例: Web UIでの自己署名証明書の使用

自己署名証明書を発行しても、実際に利用できる状態でないと意味がありません。

IOS XEデバイスのWeb UIのサーバー証明書として利用する場合は、下記のコマンドで指定可能です。

ip http secure-trustpoint SELF-SIGNED-CERT_TP

Trustpoint名の SELF-SIGNED-CERT_TP の部分は本環境で発行した自己署名証明書になっております。環境に合わせて適宜読み替えてください。


ユースケースの一例: Web UIでの自己署名証明書の使用

設定の保存

忘れないうちに、設定を保存しておきます。

end

write memory

トラブルシュート: 自己署名証明書の内容の確認

「自己署名証明書が意図した内容で発行されているか」を確認するためのコマンドを記載します。

show crypto pki certificates SELF-SIGNED-CERT_TP

Trustpoint名の SELF-SIGNED-CERT_TP の部分は、環境に合わせて適宜読み替えてください。


自己署名証明書の内容の確認

自己署名証明書の内容確認時の参考ログ (展開して表示)
ios-xe# show crypto pki certificates verbose SELF-SIGNED-CERT_TP
Router Self-Signed Certificate
  Status: Available
  Version: 3
  Certificate Serial Number (hex): 01
  Certificate Usage: General Purpose
  Issuer: 
    hostname=ios-xe.lab.test
    cn=ios-xe.lab.test
  Subject:
    Name: ios-xe.lab.test
    hostname=ios-xe.lab.test
    cn=ios-xe.lab.test
  Validity Date: 
    start date: 17:50:25 JST Aug 12 2025
    end   date: 17:50:25 JST Aug 12 2035
  Subject Key Info:
    Public Key Algorithm: rsaEncryption
    RSA Public Key: (2048 bit)
  Signature Algorithm: SHA512 with RSA Encryption
  Fingerprint MD5: A63B1DE4 AD6870E5 B2787E57 1838C93C 
  Fingerprint SHA1: 73F6E137 B5BEC928 4040320D 0D896D5A EABC939F 
  X509v3 extensions:
    X509v3 Subject Key ID: 1BA7109E 61886678 16BD782C 991036A7 9DE79D06 
    X509v3 Basic Constraints:
        CA: TRUE
    X509v3 Subject Alternative Name:
        ios-xe.lab.test 
        IP Address :  
        OtherNames :  
    X509v3 Authority Key ID: 1BA7109E 61886678 16BD782C 991036A7 9DE79D06 
    Authority Info Access:
  Cert install time: 17:50:25 JST Aug 12 2025 
  Associated Trustpoints: SELF-SIGNED-CERT_TP 


ios-xe#

関連ドキュメント

Configure CA Signed Certificates with IOS XE PKI - Cisco
https://www.cisco.com/c/en/us/support/docs/security-vpn/public-key-infrastructure-pki/220422-configure-ca-signed-certificates-with-io.html

IOS XE PKIを使用したCA署名付き証明書の設定 - Cisco
https://www.cisco.com/c/ja_jp/support/docs/security-vpn/public-key-infrastructure-pki/220422-configure-ca-signed-certificates-with-io.html

関連記事

株式会社プログデンス
設定によりコメント欄が無効化されています