首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PKI基础设施

PKI基础设施
EN

Stack Overflow用户
提问于 2016-01-21 00:15:05
回答 1查看 492关注 0票数 2

如何使用golang .x509包建立简单的链接?假设我需要自签名CA证书和CA颁发的服务器证书。当我使用

代码语言:javascript
复制
x509.CreateCertificate(rand.Reader, &issuer, &issuer, publicKeyIssuer, privateKeyIssuer)

然后

代码语言:javascript
复制
x509.CreateCertificate(rand.Reader, &subject, &issuer, publicKeySubject, privateKeyIssuer)

它不起作用。证书已创建,当服务器将其发送到浏览器时,浏览器看不到从服务器到ca的路径。

如果我使用openssl并为服务器创建证书请求,然后创建证书,那么一切都是正常的

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

发布于 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

代码语言:javascript
复制
ca := x509.Certificate{
    Subject: pkix.Name{
                Organization: []string{"O"},
            }
}
server := x509.Certificate{
    Subject: pkix.Name{
                Organization: []string{"O"},
            }
}

对于颁发者和subject.That,DN是相同的,这就是浏览器找不到路径的原因。它只是向pkix中添加更多信息,例如,CommonName。它将使DN唯一。

代码语言:javascript
复制
ca := x509.Certificate{
    Subject: pkix.Name{
                CommonName:   []string{"CA"},
                Organization: []string{"XUnit"},
            }
}
server := x509.Certificate{
    Subject: pkix.Name{
                CommonName:   []string{"server"},
                Organization: []string{"XUnit"},
            }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34905063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档