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のバックアップやリストアに関しては、下記の記事を参照してください。
設定作業の要点
- 自己署名証明書の秘密鍵を生成します。(RSA Key Pairを生成します。)
- 自己署名証明書の定義を設定します。(Trustpointを設定します。)
- 自己署名証明書の定義に基づいて実際に発行します。(enrollします。)
- ユースケースの一例: 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