如何从证书获取/生成pin sha256

问题描述 投票:0回答:2

简单的问题

我正在尝试使用网络安全配置在 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>

建议/步骤。

非常感谢

android xamarin.forms xamarin.android
2个回答
19
投票

在 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


3
投票

给定域 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
© www.soinside.com 2019 - 2024. All rights reserved.