例如,假设我想使用任意或已弃用的扩展名签署证书(例如 nsCertType):https://www.openssl.org/docs/manmaster/man5/x509v3_config.html
我相信我应该添加任意扩展作为证书的一部分,如下所示,但是如何/在哪里发现 asn1 对象标识符?我今天读了更多我愿意承认的文档,但仍然感到困惑。
tmpl := &x509.Certificate{
SerialNumber: big.NewInt(time.Now().Unix()*1000),
Subject: pkix.Name{CommonName: "edgeproxy", Organization: []string{"edgeproxy"}},
NotBefore: now,
NotAfter: now.Add(caMaxAge),
ExtraExtensions: []pkix.Extension{
{
Id: asn1.ObjectIdentifier{}, //what goes here
Critical: false,
[]byte("sslCA"),
},
},
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth,x509.ExtKeyUsageClientAuth,x509.ExtKeyUsageEmailProtection, x509.ExtKeyUsageTimeStamping, x509.ExtKeyUsageMicrosoftCommercialCodeSigning, x509.ExtKeyUsageMicrosoftServerGatedCrypto, x509.ExtKeyUsageNetscapeServerGatedCrypto} ,
KeyUsage: x509.KeyUsageCRLSign | x509.KeyUsageCertSign,
IsCA: true,
BasicConstraintsValid: true,
}
在 python 中,我会这样做,但不知道如何将其移植到 go 中(这就是我在一天结束时所做的):
OpenSSL.crypto.X509Extension(
b"nsCertType",
False,
b"sslCA"
),
一只甜甜圈
相关分类