【发布时间】:2019-09-18 22:03:15
【问题描述】:
例如,假设我想使用任意或不推荐的扩展名(例如 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"
),
【问题讨论】:
-
谢谢!已经找到我需要的东西了!想要给出答案,我会接受吗?
标签: go ssl x509certificate x509