CA 発行証明書による安全でない接続

CA 発行証明書による安全でない接続

Cisco C9300 からの CSR から Web サーバ証明書をインポートしました。証明書は証明機関から発行されたもので、チェーンの最後に正しい CA が表示されています。CLI には、証明書が問題なく正しくインストールされたことが示されています。問題は、スイッチのセキュア Web サイト (https://) にアクセスしたときに、接続が安全でないと表示されることです。ブラウザで証明書を確認すると、CA から取得した証明書が表示されます。証明書が有効であるにもかかわらず、安全でないと表示されるのはなぜですか?

ページに行くと、NET::ERR_CERT_COMMON_NAME_INVALID

更新1: @Zac67 のおかげで、Trustpoint 情報を確認しています。Web ページのスイッチにアクセスするときは、https://ipaddress を使用します。以下を作成できます。

subject-name C=US, ST=Pennsylvania, L=My-Town, O=My-Org, OU=My-Department, CN=SWITCHNAME.DOMAIN.NET

しかし、そうするとsubject-alt-name 192.168.1.10次のエラーが発生します。

CRYPTO_PKI: Label cannot be made only of digits. Also, ip addresses are not permitted

CN にアドレスを入力してみましたが、それでもうまくいきませんでした。証明書が無効であると引き続き表示されます。

更新2:私はHow-Toを使用していますここ:RSA キーを作成します。そのキーを使用して、CA を信頼ポイントとして使用しています。Web サーバー証明書用に Microsoft CA に渡すサムプリントを取得します。CA から Web サーバー証明書を取得し、同じ手順でスイッチにインポートします。その後、Web ページにアクセスすると、Web ページが有効ではないと表示されます。証明書は、自分のドメインの CA から発行されたものです。なぜ無効と判断されるのかわかりません。

更新3:そこで、SAN に関する RICK からの提案を検討しています。OpenSSL は使用できないため使用しないことを説明します。ネットワーク上の CA を使用する必要があります。CN については、証明書の IP アドレスに CN を設定しました。SAN については、Cisco にはip-addressアドレスを追加する別のコマンドがあり、別のコマンドがあります。subject-name-alternativeこのコマンドには IP アドレスを追加できません。これは許可されていないためです。そこで、次の操作を実行できることがわかりました。

CN は次のようになります。

  • IPアドレス
  • ホスト名
  • 完全修飾ドメイン名

SAN (Subject-Name-Alternative) は次のようになります。

  • ホスト名
  • 完全修飾ドメイン名

IPアドレスを追加できるかどうか

これらすべてを組み合わせて試してみましたが、エラー「NET::ERR_CERT_COMMON_NAME_INVALID」で、EDGE で証明書が無効であるというメッセージが引き続き表示されます。Edge から証明書を確認すると、同じフィンガープリントで単独で開くと同じ証明書が表示されます。

では、Edge を使用して IP アドレスからアクセスする場合、CN はどうすればよいのでしょうか?

アップデート4また、CSR を作成するために次の操作を実行するときに、IP アドレス行を追加します。しかし、証明書を見ると、IP アドレスが SAN に追加されていないように見えます。実際のところ、証明書には SAN がまったく含まれていません。翻訳で何かが失われているようです。

crypto pki trustpoint my-trustpoint
enrollment terminal pem 
subject-name C=US, ST=Pennsylvania, L=My-Town, O=My-Org, OU=My-Department, CN=My-Switch.my-network.com
subject-alt-name my-switch.my-network.com
serial-number none
ip-address 192.168.1.51
revocation-check none
rsakeypair my-4096rsa-key
end

IP アドレスが SAN に含まれていない理由をご存知ですか?

答え1

リッキーのコメントを詳しく説明すると、https:// しなければならない証明書のサブジェクト名 (SN​​) またはサブジェクトの別名 (SAN) のいずれかと一致している必要があります。IP アドレスのみを使用する場合は、SAN として存在する必要があります。わずかな不一致でも証明書エラーが発生します。

また、独自の CA を使用する場合は、ルート CA 証明書がクライアントの信頼ストアに存在することを確認してください。

答え2

使用している Cisco IOS のバージョンで IP ベースのサブジェクト別名 (SAN) を定義できない場合は、openssl などの別のツールを使用して CSR を作成し、IP を含めてから、CA を使用して CSR に署名する必要があります。

openssl では、openssl.cnf構成ファイルを使用して、SAN を含めるセクションを追加します (CLI 経由でも実行できますが、少し複雑になります)。

構成ファイルを使用するには、セクションに次のようなパラメータ[req]を含める必要があります。req_extensions

req_extensions = req_ext

指定する値は、使用する拡張機能を定義する後のセクションの「コンテキスト」です。 をreq_ext値として指定すると、残りの構成は次のようになります。

[ req_ext ]
subjectAltName = @alt_names 

[alt_names]
IP.1    = 192.168.1.10
  • 生成された証明書署名要求 (CSR) に次のエントリが含まれていることを確認するには、次の操作を実行します。
openssl req -noout -text -in switch.csr

確認してくださいX509v3 サブジェクト代替名IP:セクション。内部には、CSR を生成したときに定義した内容を含むエントリがあるはずですopenssl.cnf。証明書で保護する予定の IP アドレスが CSR の SAN エントリ内にリストされていない場合は、問題が発生しています。フィールドが欠落している CSR から生成された証明書では、IP が適切に保護されないため、前述のエラーが発生します。

期待される IP エントリが表示された場合は、CSR を CA に渡して署名と証明書の作成を依頼します。

  • CA 署名付き証明書に最近の openssl のエントリが含まれていることを確認するには、次のコマンドを使用します。
openssl x509 -noout -ext subjectAltName -in switch.pem
  • CA 署名付き証明書に古いバージョンの openssl (拡張フラグがない-ext) のエントリが含まれていることを確認するには、次のコマンドを使用します。
openssl x509 -noout -text -in switch.pem

上記のいずれかの方法を使用して、インストール前に署名された証明書を調べることができます。件名の別名セクションの値を確認します。これが正しい場合は、スイッチに新しい証明書をインストールしてください。


あるいは、ブラウザ経由ですでにインストールされている証明書の SAN フィールドを調べることもできます。ブラウザ ソフトウェアとバージョンによっては、情報のレイアウトが異なる場合があります。

たとえば、ChromeではブラウザのHTTPS/ロック(サイト情報の表示)をクリックし、接続は安全ですクリックすると証明書は有効ですスイッチは有効ではないので、クリックしてください証明書は無効です

Chrome: 証明書の詳細

Firefoxで証明書を確認するには、ブラウザのHTTPS/Lockをクリックします。接続は安全です(もちろんそれが真実である場合)、詳しくは

Firefox: 証明書を表示

関連情報