首页 > 解决方案 > 在 iOS Swift 上进行公钥固定时的 ASN1 标头

问题描述

在我可以从谷歌找到的大多数示例中,我总是看到人们对一些 ASN1 标头进行硬编码,如下所示:

let rsa2048Asn1Header:[UInt8] = [
   0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
   0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00
]

但是,如果我尝试使用

openssl s_client connect www.google.com:443 < /dev/null | openssl x509 -outform DER > google.der

并使用

openssl asn1parse -inform DER -in google.der -noout -out data && hexdump -C data

标题显然不一样。我对 SSL 不是很熟悉,我的问题是;

1、如何获取RSA2048 ASN1 header的值?

2,我应该始终只使用 rsa2048 ASN1 标头,还是每次尝试对主机进行 cert-pin 时都提取 asn1 标头?

标签: iosswiftcertificate-pinning

解决方案


推荐阅读