如何计算及获取OpenID Connect服务器的thumbprint指纹
什么是OIDC身份提供商的thumbprint(指纹)参数
thumbprint是OIDC身份提供商服务端TLS根证书的SHA-1哈希值,AWS等云服务在和OIDC提供商建立信任连接时,会用这个指纹验证对方提供的根证书是否合法,避免中间人攻击。
如何获取OIDC提供商的thumbprint
你可以通过openssl命令手动计算,步骤如下:
- 提取OIDC提供商域名的完整证书链,以下以示例中的GitHub Actions OIDC域名
token.actions.githubusercontent.com为例:openssl s_client -servername token.actions.githubusercontent.com -showcerts -connect token.actions.githubusercontent.com:443 < /dev/null - 从输出的证书链中找到最末尾的根证书(特征为证书的issuer和subject字段完全一致),将
-----BEGIN CERTIFICATE-----到-----END CERTIFICATE-----的完整内容单独保存为文件,例如root.crt - 计算该根证书的SHA-1哈希,得到thumbprint:
openssl x509 -in root.crt -fingerprint -sha1 -noout - 将输出结果里的冒号全部删除、字母转为小写,即可填入配置的thumbprint列表中。
小提示:如果在AWS控制台手动创建OIDC提供商,填入提供商URL后AWS会自动拉取证书并计算thumbprint,无需手动执行上述命令;仅使用Terraform等IaC工具批量配置时需要提前获取该值。
配置示例
以下是Terraform创建GitHub Actions OIDC提供商的参考配置:
resource "aws_iam_openid_connect_provider" "github" { url = "https://token.actions.githubusercontent.com" client_id_list = [ "githubactions", ] thumbprint_list = [ "6938fd4d98bab03faadb97b34396831e3780aea1", ] }
内容的提问来源于stack exchange,提问作者AlBlue
相关产品推荐
相关产品推荐

