在我可以从谷歌找到的大多数示例中,我总是看到人们对一些 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 标头?