9

我有一个正在运行的 Android 应用程序,它使用 SHA256 Pin 实现证书固定。我使用https://www.ssllabs.com/ssltest工具来获取该引脚。

当前服务器证书即将到期,将向服务器申请新证书。在将新证书应用到服务器之前,我需要为新证书生成 SHA256 Pin,以便我可以将其添加到应用程序并在更新中引入它。

我有新的证书 .crt 文件。知道如何从文件中生成 SHA256 密钥吗?我无法访问服务器,只有 .crt 文件。

根据 OkHttp 的 CertificatePinner 文档:

SHA-256 或 SHA-1 哈希。每个 pin 都是证书主题公钥信息的哈希,base64 编码并以 sha256/ 或 sha1/ 为前缀。

4

1 回答 1

3

试试这个命令

openssl x509 -in my-certificate.crt -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64

然后使用

"sha256/"  + ${ouput hash from the command line above}.

您可以在 Mozilla 开发者网络的Public Key Pinning 页面找到更多命令

于 2021-06-03T09:07:05.157 回答