本トピックでは、OpenID Connect (OIDC) ID プロバイダー (IdP) の SSL/TLS 証明書指紋を OpenSSL を使用して取得する方法について説明します。
前提条件
お使いのオペレーティングシステムに OpenSSL コマンドラインツールがインストールされていることを確認してください。本トピックでは、Windows 10 オペレーティングシステムを例として説明します。
OpenSSL をインストールします。
Win32/Win64 OpenSSL からインストールパッケージをダウンロードします。
インストールパッケージを実行します。
デフォルトのインストールパス(
C:\Program Files\OpenSSL-Win64)の使用を推奨します。
環境変数を手動で設定します。
デスクトップ上で PC を右クリックし、 を選択し、OpenSSL の
binディレクトリのパス(例:C:\Program Files\OpenSSL-Win64\bin)をPath環境変数に追加します。インストールを確認します。
コマンドプロンプトまたは PowerShell で、次のコマンドを実行します:
openssl version出力が以下の例と類似している場合、OpenSSL は正常にインストールされています。
OpenSSL 3.4.1 11 Feb 2025「コマンドが見つかりません」または「認識されていません」というエラーが表示された場合は、
Path環境変数にx:\xxx\OpenSSL-Win64\binディレクトリが含まれているか確認してください。
操作手順
本操作手順では、ドメイン名の例として https://oauth.aliyun.com を使用します。各ステップに従う際には、これをご利用の ID プロバイダーのドメイン名に置き換えてください。
ステップ 1:完全修飾ドメイン名の取得
ID プロバイダーのベース URL に
/.well-known/openid-configurationを付加して、OIDC ID プロバイダーの構成ドキュメントの URL を作成します。たとえば、https://oauth.aliyun.comの場合、構成ドキュメントの URL は以下のとおりです:https://oauth.aliyun.com/.well-known/openid-configurationWeb ブラウザーで上記 URL を開き、JSON 形式の構成ドキュメントを表示します。ドキュメント内で
jwks_uriフィールドを検索し、その値から完全修飾ドメイン名を抽出します。完全修飾ドメイン名にはプロトコル(https://)やその後続のパスは含めません。本例では、完全修飾ドメイン名はoauth.aliyun.comです。
ステップ 2:証明書の取得
ターミナルを開き、次のコマンドを実行します。
oauth.aliyun.comは、ステップ 1 で取得した完全修飾ドメイン名に置き換えてください。openssl s_client -servername oauth.aliyun.com -showcerts -connect oauth.aliyun.com:443コマンド出力内から、
-----BEGIN CERTIFICATE-----および-----END CERTIFICATE-----のマーカーで囲まれた証明書ブロックを特定します。出力に複数の証明書が含まれる場合は、最後の証明書を使用してください。説明標準の PEM 形式証明書には、以下の境界マーカーが必須です:
開始マーカー:
-----BEGIN CERTIFICATE-----終了マーカー:
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQkcwDQYJKoZIhvcNAQELBQAwVzELMAkG A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv ··· -----END CERTIFICATE-----開始および終了マーカーを含む証明書全体をコピーし、新しいテキストファイルに貼り付けます。ファイルを
.crt拡張子で保存します(例:ファイル名をcertificate.crtとする)。(任意)ファイルの有効性を確認します。
ターミナルで次のコマンドを実行します。コマンドがエラーなく実行された場合、ファイル形式は有効です。
openssl x509 -in certificate.crt -text -noout
ステップ 3:指紋の取得
ターミナルまたはコマンドプロンプトで、次のコマンドを実行します:
openssl x509 -in certificate.crt -fingerprint -sha1 -nooutコマンドの出力には証明書の指紋が表示されます。
SHA1 Fingerprint=90:2E:F2:DE:EB:3C:5B:13******出力からすべてのコロン(
:)を削除して、指紋を取得します。902EF2DEEB3C5B13******