简单的问题
我正在尝试使用网络安全配置在 Android 中进行证书固定 但我不知道如何将 SHA-256 放入引脚组中
给定一个域名 url,如何找到“pindigest=”SHA-256”?
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
<domain includeSubdomains="true">example.com</domain>
<pin-set expiration="2018-01-01">
<pin digest="SHA-256">HowDoIGetThisValue</pin>
<!-- backup pin -->
<pin digest="SHA-256">HowDoIGetThisValue</pin>
</pin-set>
</domain-config>
</network-security-config>
建议/步骤。
非常感谢
在 MAC 中:
如果您的证书类型是 .crt:
openssl x509 -在 yourCertificatePath.crt -pubkey -noout | openssl pkey -pubin -outform der | openssl pkey -pubin -outform der | openssl pkey -pubin -outform der | openssl pkey -pubin -outform openssl dgst -sha256 -二进制 | openssl enc -base64
如果您的证书类型是 .cer:
如果是 DER 证书:
openssl x509 -in yourCertificatePath.cer -pubkey -noout -inform der | openssl pkey -pubin -outform der | openssl pkey -pubin -outform der | openssl pkey -pubin -outform der | openssl pkey -pubin -outform openssl dgst -sha256 -二进制 | openssl enc -base64
如果是PEM证书:
➜ ~ openssl x509 -in yourCertificatePath.cer -pubkey -noout -inform pem |
openssl pkey -pubin -outform der | openssl pkey -pubin -outform der | openssl pkey -pubin -outform der | openssl pkey -pubin -outform
openssl dgst -sha256 -二进制 |
openssl enc -base64
给定域 URL
example.com
,您可以连接到服务器并获取证书 pin(SHA-256),如下所示:
openssl s_client -servername example.com -connect example.com:443 | \
openssl x509 -pubkey -noout | \
openssl rsa -pubin -outform der | \
openssl dgst -sha256 -binary | \
openssl enc -base64