如何解码 tbsCertificate 内容?
How can I decode tbsCertificate content?
我想看看 tbsCerticate 的内容是什么。
这是我所做的:
- 从网站 (baidu.com) 下载二进制格式的证书。
- 使用
openssl x509 -in bd.cer -inform cer -text -noout >> bd.cer.noout.txt
翻译成文字。现在我可以看到证书中的内容
openssl asn1parse -inform der -in bd.cer > bd.cer.asn1
解析证书。根据rfc5280,第二行是tbsCertificate内容,即4:d=1 hl=4 l=2326 cons: SEQUENCE
.
dd if=bd.cer of=bd.cer.tbsCertificate skip=4 bs=1 count=2330
转储字节。
openssl x509 -in bd.cer.tbsCertificate -inform der -text -noout >> bd.cer.tbs.txt
现在想把它bd.cer.tbsCertificate解析成x509格式看看,但是失败了
unable to load certificate
140421447947392:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1149:
140421447947392:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:309:Type=X509_CINF
140421447947392:error:0D08303A:asn1 encoding routines:asn1_template_noexp_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:646:Field=cert_info, Type=X509
我想知道为什么我不能像 bd.cer
一样将 bd.cer.tbsCertificate
翻译成 x509。我想念什么吗?从报错来看,好像是结构不对。
想看txt中的tbsCertificate,知道到底加密了什么,怎么办?感谢您的帮助!
From the error, it seems that the structure is not right.
正确。 x509 命令只能读取证书。
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
-- If present, version MUST be v3
}
由于您提供的是 TBSCertificate,而不是证书,当它期望看到 SEQUENCE,SEQUENCE,但得到的是 SEQUENCE,[0],它出错了。
ASN.1 DER 编码中没有任何内容表示“此结构是一个 TBSCertificate”,该结构只是对应写入或读取的数据顺序的定义。所以 openssl x509
命令没有任何迹象表明您已经剥离了外部序列(证书结构)。 openssl asn1parse
显示数据包含的内容。 “我是一个序列,我的内容这么长。我是一个序列,我的内容这么长。我是一个特定于上下文的 0,我的内容这么长,它是 0x02。...” =16=]
What should I do if I want to see tbsCertificate in txt to know what exactly are encrypted.
证书中没有任何内容被加密。
“TBSCertificate”是“待签名证书”。外部结构是{“所有内容”,“它是如何签名的”,“签名”}。证书上的 openssl x509
命令已经向您显示了 TBSCertificate 值中的内容...版本号、主题、有效性、颁发者等。
我想看看 tbsCerticate 的内容是什么。
这是我所做的:
- 从网站 (baidu.com) 下载二进制格式的证书。
- 使用
openssl x509 -in bd.cer -inform cer -text -noout >> bd.cer.noout.txt
翻译成文字。现在我可以看到证书中的内容 openssl asn1parse -inform der -in bd.cer > bd.cer.asn1
解析证书。根据rfc5280,第二行是tbsCertificate内容,即4:d=1 hl=4 l=2326 cons: SEQUENCE
.dd if=bd.cer of=bd.cer.tbsCertificate skip=4 bs=1 count=2330
转储字节。openssl x509 -in bd.cer.tbsCertificate -inform der -text -noout >> bd.cer.tbs.txt
现在想把它bd.cer.tbsCertificate解析成x509格式看看,但是失败了
unable to load certificate
140421447947392:error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag:../crypto/asn1/tasn_dec.c:1149:
140421447947392:error:0D07803A:asn1 encoding routines:asn1_item_embed_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:309:Type=X509_CINF
140421447947392:error:0D08303A:asn1 encoding routines:asn1_template_noexp_d2i:nested asn1 error:../crypto/asn1/tasn_dec.c:646:Field=cert_info, Type=X509
我想知道为什么我不能像 bd.cer
一样将 bd.cer.tbsCertificate
翻译成 x509。我想念什么吗?从报错来看,好像是结构不对。
想看txt中的tbsCertificate,知道到底加密了什么,怎么办?感谢您的帮助!
From the error, it seems that the structure is not right.
正确。 x509 命令只能读取证书。
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
-- If present, version MUST be v3
}
由于您提供的是 TBSCertificate,而不是证书,当它期望看到 SEQUENCE,SEQUENCE,但得到的是 SEQUENCE,[0],它出错了。
ASN.1 DER 编码中没有任何内容表示“此结构是一个 TBSCertificate”,该结构只是对应写入或读取的数据顺序的定义。所以 openssl x509
命令没有任何迹象表明您已经剥离了外部序列(证书结构)。 openssl asn1parse
显示数据包含的内容。 “我是一个序列,我的内容这么长。我是一个序列,我的内容这么长。我是一个特定于上下文的 0,我的内容这么长,它是 0x02。...” =16=]
What should I do if I want to see tbsCertificate in txt to know what exactly are encrypted.
证书中没有任何内容被加密。
“TBSCertificate”是“待签名证书”。外部结构是{“所有内容”,“它是如何签名的”,“签名”}。证书上的 openssl x509
命令已经向您显示了 TBSCertificate 值中的内容...版本号、主题、有效性、颁发者等。