全部產品
Search
文件中心

Resource Access Management:通過OpenSSL擷取OIDC IdP的指紋

更新時間:Apr 09, 2025

本文介紹如何使用OpenSSL工具快速擷取OpenID Connect(OIDC)身份供應商(IdP)的SSL/TLS認證指紋。

前提條件

請確保您的系統中已正確安裝 OpenSSL 命令列工具,本文以‌Windows 10作業系統‌為例。

  1. 安裝OpenSSL。

    1. Win32/Win64 OpenSSL‌下載安裝包‌。

    2. 運行安裝包。

      建議保持預設安裝路徑(C:\Program Files\OpenSSL-Win64)。

  2. ‌手動設定環境變數。

    在案頭滑鼠右鍵單擊此電腦,選擇屬性 > 進階系統設定 > 環境變數 > 系統變數,在Path‌中添加OpenSSL的bin目錄路徑(如 C:\Program Files\OpenSSL-Win64\bin)‌。

  3. 驗證安裝結果。

    在命令提示字元或PowerShell中執行以下命令:

    openssl version  
    • 若輸出類似以下內容,則表示OpenSSL 已正確安裝。

      OpenSSL 3.4.1 11 Feb 2025 
    • 若提示“命令未找到”或“無法識別”‌,則需要您檢查環境變數路徑是否包含 x:\xxx\OpenSSL-Win64\bin 目錄。

操作步驟

以下操作以 https://oauth.aliyun.com 為樣本網域名稱,實際執行時需將其替換為您自己的IdP網域名稱。

步驟一:擷取頂級域

  1. 為了訪問OIDC IdP的配置資訊,您需要構建該IdP的配置文檔URL,即在IdP的基礎URL後添加/.well-known/openid-configuration。以https://oauth.aliyun.com為例,構建的IdP配置文檔URL如下:

    https://oauth.aliyun.com/.well-known/openid-configuration
  2. 開啟瀏覽器訪問構建好的IdP配置文檔URL,我們可以得到如下所示的JSON格式配置文檔‌。從中找到jwks_uri欄位,擷取其中的完全限定網域名稱(不包括https://和頂級域後的路徑),即oauth.aliyun.com

    IdP配置文檔URL

    {
        "authorization_endpoint": "https://signin.aliyun.com/oauth2/v1/auth",
        "code_challenge_methods_supported": [
            "plain",
            "S256"
        ],
        "id_token_signing_alg_values_supported": [
            "RS256"
        ],
        "issuer": "https://oauth.aliyun.com",
        //完全限定網域名稱:oauth.aliyun.com
        "jwks_uri": "https://oauth.aliyun.com/v1/keys",
        "requestid": "f7d3899f-5677-4634-a7dd-832818bb062a",
        "response_types_supported": [
            "code"
        ],
        "revocation_endpoint": "https://oauth.aliyun.com/v1/revoke",
        "scopes_supported": [
            "openid",
            "aliuid",
            "profile"
        ],
        "subject_types_supported": [
            "public"
        ],
        "token_endpoint": "https://oauth.aliyun.com/v1/token",
        "userinfo_endpoint": "https://oauth.aliyun.com/v1/userinfo"
    }

步驟二:擷取認證

  1. 開啟終端,輸入以下命令,其中的oauth.aliyun.com步驟一中擷取的完全限定網域名稱。

    openssl s_client -servername oauth.aliyun.com -showcerts -connect oauth.aliyun.com:443
  2. 在輸出結果中,通過滾動或搜尋索引鍵( -----BEGIN CERTIFICATE----------END CERTIFICATE-----)找到包含認證的區塊。若存在多個認證條目,預設選取最後一個認證。

    說明

    標準的PEM格式認證必須包含以下固定邊界標識符:

    • ‌起始標記‌:-----BEGIN CERTIFICATE-----

    • 結束標記:-----END CERTIFICATE-----

    -----BEGIN CERTIFICATE-----
    MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQkcwDQYJKoZIhvcNAQELBQAwVzELMAkG
    A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
    ···
    -----END CERTIFICATE-----
  3. 完整複製以上認證內容,確保包含完整的‌起始標記‌和結束標記。使用純文字編輯器建立檔案,將複製的認證內容粘貼至檔案中,並以 .crt 為副檔名儲存。檔案名稱樣本:certificate.crt

  4. ‌(可選)驗證檔案有效性‌。

    開啟終端運行以下命令,無報錯即表示格式正確。

    openssl x509 -in certificate.crt -text -noout

步驟三:擷取指紋

  1. 開啟終端或命令提示字元輸入以下完整命令並斷行符號。

    openssl x509 -in certificate.crt -fingerprint -sha1 -noout

    輸出認證指紋。

    SHA1 Fingerprint=90:2E:F2:DE:EB:3C:5B:13******
  2. 將該指紋中的所有:去除,以擷取最終指紋。

    902EF2DEEB3C5B13******