ポートスキャンによる証明書ディスカバリー:バックエンドワークフローの説明Summary<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 目的tls_ssl_certsを有効にし、サーバーが TLS で応答した後に何が起こるか考えたことはありますか?ここでは、キャプチャから証明書レコードの作成とリンクまでのバックエンドジャーニー全体について説明します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 概要- tls_ssl_certsを有効にすると、既存のディスカバリー・スケジュールは、構成されたポートで証明書のキャプチャーを試みます。- TLS 応答を受信すると、MID サーバーはサーバー証明書チェーンをキャプチャしてインスタンスに返します。- インスタンスは、返されたチェーンを処理し、証明書履歴レコードを挿入し、イベント駆動型ステップをトリガーし、証明書 CI レコードを作成または更新し (このフローで有効になっている場合は IRE を使用)、インストールされた証明書マッピングを作成または更新し、検出されたサーバー証明書 CI を参照するように履歴レコードを更新します。- このチェーンのランタイム・メッセージは、「ディスカバリー・ログ」タブの「ディスカバリー状況」レコードで確認できます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ このチェーンで使用されるキーレコードリンク - Port Probe record (tls_ssl_certs)https://<instance_name>.service-now.com/nav_to.do?uri=discovery_port_probe.do?sys_id=1e699a597752330099808d116810612c - Business Rule: Discovery - Certificate Captured (After Insert)https://<instance_name>.service-now.com/nav_to.do?uri=sys_script.do?sys_id=6cc7041777123300b5bd1c3faa1061f3 - Script Action for event sn_disco_certmgmt.certificate.capturedhttps://<instance_name>.service-now.com/nav_to.do?uri=sysevent_script_action.do?sys_id=948c4c9777123300b5bd1c3faa106112 - Script Include: PopulateCmdbCiCertificatehttps://<instance_name>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=a4d8ecef77923300b5bd1c3faa1061e8 - Script Include: PopulateCmdbInstalledCertificatehttps://<instance_name>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=31b568af77923300b5bd1c3faa106136 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ TLS 応答を受信した後のバックエンドチェーン TLS 証明書チェーンがキャプチャされ、エンドポイントから返されます- MID サーバーは、ターゲット IP とポートで TLS ハンドシェイクを完了し、証明書チェーンを抽出します。- MID は、ソースやポートなどのエンドポイントコンテキストを持つペイロードとしてチェーンをインスタンスに返します。 インスタンスは返された証明書チェーンを処理します- 返されたペイロードは、取り込みのためにデコードされ、構造化された証明書チェーンに解凍されます。- エンドポイントとポートの処理結果は、[ディスカバリーログ] タブの [ディスカバリーステータス] レコードに表示されます。 証明書履歴レコードが作成されました- 新しいレコードがsn_disco_certmgmt_certificate_historyに挿入されます。- このレコードには、エンドポイント ID フィールド (該当する場合はソース、ポート、discovery_method、sys_domain、パス) とキャプチャされた証明書チェーンペイロードが格納されます。 ビジネスルールが証明書キャプチャイベントをトリガーしてキューに入れる- ビジネスルール名:ディスカバリー - キャプチャされた証明書- トリガー:sn_disco_certmgmt_certificate_history時に挿入後- 結果: 新しく挿入された履歴レコードのイベント sn_disco_certmgmt.certificate.captured をキューに格納します- ビジネスルールのリンクhttps://<instance_name>.service-now.com/nav_to.do?uri=sys_script.do?sys_id=6cc7041777123300b5bd1c3faa1061f3 スクリプトアクションはキューに入れられたイベントに対して実行され、入力とリンクを実行します- スクリプト・アクションは、証明書履歴レコードを入力として使用します。- 証明書 CI レコードを作成または更新し、インストールされた証明書マッピングを作成または更新し、サーバー証明書参照を使用して履歴レコードを更新します。- スクリプトアクションリンクhttps://<instance_name>.service-now.com/nav_to.do?uri=sysevent_script_action.do?sys_id=948c4c9777123300b5bd1c3faa106112 証明書 CI レコードが作成または更新される (IRE 動作を含む)- 入力は、履歴レコードの証明書チェーンペイロードを使用して PopulateCmdbCiCertificate によって処理されます。- チェーンは逆の順序 (ルートからサーバー) で処理されるため、発行者とルート発行者の参照を正しく入力できます。- 証明書の照合と作成は指紋主導型であり、その後、追加の属性 (サブジェクト、発行者、有効性、シリアル番号、アルゴリズム、キー サイズ、CA および自己署名インジケーター、SAN 参照) が入力されます。- IRE の使用は、DiscoveryCertificateManagementUtils.shouldUseIRE によって制御されます。このフローに対して IRE が有効になっている場合、証明書は IRE を使用してアップサートされます。有効になっていない場合、証明書はレコードの直接更新を使用してアップサートされます。- IRE アップサートは、発行者とルート発行者の参照が更新されたときを含め、チェーン全体で一貫して適用されます。- PopulateCmdbCiCertificate リンクhttps://<instance_name>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=a4d8ecef77923300b5bd1c3faa1061e8 インストール済み証明書マッピングが作成または更新されました- マッピングは PopulateCmdbInstalledCertificate によって処理されます。- この ID キー (ソース、sys_domain、discovery_method、証明書、ポート、パス) を使用して、インストール済み証明書マッピングレコードを作成または更新します。- 一致するマッピングが存在する場合は、複製されるのではなくリフレッシュされます。- PopulateCmdbInstalledCertificate リンクhttps://<instance_name>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=31b568af77923300b5bd1c3faa106136 証明書履歴レコードがサーバー証明書参照で更新されます- 履歴レコードが更新され、server_certificateフィールドが検出または更新されたサーバー証明書 CI を参照するようになります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 迅速に確認する方法- ディスカバリー状況レコード (ランタイム・メッセージについては「ディスカバリー・ログ」タブを確認してください)- 証明書履歴 (レコードが存在し、server_certificateが入力されていることを確認)- 証明書 CI (証明書レコードが存在するか、更新されたかを確認します)- インストール済み証明書マッピング (エンドポイントから証明書へのマッピングが存在することを確認する) Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } ポートスキャンによる証明書ディスカバリーの実行