确定 X5T 标头
- Updated: 2025/04/18
在配置 Microsoft Entra ID 的私钥 JWT 身份验证时,需要使用 X5T 标头。
使用以下方法之一,通过 X5T 标头值查找服务器证书的指纹。
使用 xxd 和 openssl 命令
指纹或哈希值的十六进制表示法是使用 xxd 和 openssl 命令转换为 Base64 编码格式的。
echo <thumbprint> | xxd -r -p | openssl enc -a
其中,
- echo <thumbprint>: 此命令打印指纹。 将 <thumbprint> 替换为实际的指纹字符串。
- xxd -r -p: 带有 -r -p 选项的 xxd 命令可以反转十六进制转储,将指纹从十六进制转换为二进制。
- openssl enc -a: openssl enc -a 命令将二进制数据编码为 base64。
以上命令的示例输出:
$ echo "09B3D84C6B5684B8A33599C88C5AAA411F5969C6" | xxd -r -p | openssl enc -a CbPYTGtWhLijNZnIjFqqQR9ZacY=
使用 Windows 上的 Certutil 和 PowerShell
此命令使用 certutil,但带有 -encode 选项,将 thumbprintbinary 中的二进制数据编码为 Base64 格式。
echo <thumbprint> > thumbprinthex; certutil -f -decodehex thumbprinthex thumbprintbinary; certutil -f -encode thumbprintbinary base64.txt; get-content base64.txt | Where-Object { -not $_.Contains('-----') } | Out-File x5t.txt
以上命令的示例输出:
PS C:\x5ttest> echo 09B3D84C6B5684B8A33599C88C5AAA411F5969C6 > thumbprinthex; PS C:\x5ttest> certutil -f -decodehex thumbprinthex thumbprintbinary; Input Length = 86 Output Length = 20 CertUtil: -decodehex command completed successfully. PS C:\x5ttest> certutil -f -encode thumbprintbinary base64.txt; Input Length = 20 Output Length = 86 CertUtil: -encode command completed successfully. PS C:\x5ttest> get-content base64.txt | Where-Object { -not $_.Contains('-----') } | Out-File x5t.txt PS C:\x5ttest> cat .\x5t.txt CbPYTGtWhLijNZnIjFqqQR9ZacY=