如何使用golang .x509包建立简单的链接?假设我需要自签名CA证书和CA颁发的服务器证书。当我使用
x509.CreateCertificate(rand.Reader, &issuer, &issuer, publicKeyIssuer, privateKeyIssuer)然后
x509.CreateCertificate(rand.Reader, &subject, &issuer, publicKeySubject, privateKeyIssuer)它不起作用。证书已创建,当服务器将其发送到浏览器时,浏览器看不到从服务器到ca的路径。
如果我使用openssl并为服务器创建证书请求,然后创建证书,那么一切都是正常的
openssl req -key server.key -new -out server.req -sha256
openssl x509 -req -in server.req -CA ca.crt -CAkey ca.key -out server.crt我知道有x509.CreateCertificateRUEST,但我现在不知道如何将请求与创建证书联系起来?我做错了什么,或者我现在不太了解x509.CreateCertificate?
发布于 2016-01-21 04:09:51
在提问http://www.oasis-pki.org/pdfs/Understanding_Path_construction-DS2.pdf之前我必须知道的事情
DN名称( CA证书中的主题和服务器证书中的颁发者)必须相同。但是subject和issuer的DN名称不能相等。DN构成了Issuer和Subject之间的联系。
在我的例子中,我只使用了O=Organization
ca := x509.Certificate{
Subject: pkix.Name{
Organization: []string{"O"},
}
}
server := x509.Certificate{
Subject: pkix.Name{
Organization: []string{"O"},
}
}对于颁发者和subject.That,DN是相同的,这就是浏览器找不到路径的原因。它只是向pkix中添加更多信息,例如,CommonName。它将使DN唯一。
ca := x509.Certificate{
Subject: pkix.Name{
CommonName: []string{"CA"},
Organization: []string{"XUnit"},
}
}
server := x509.Certificate{
Subject: pkix.Name{
CommonName: []string{"server"},
Organization: []string{"XUnit"},
}
}https://stackoverflow.com/questions/34905063
复制相似问题