Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CA ¶
type CA struct {
*CertKeyPair
}
func NewCA ¶
NewCA 生成一个 CA,该 CA 包含 ECDSA 体制下的公钥、私钥、签名者(背书者)、证书。CA 的证书是由自己签发的:
- 私钥(Key):在生成 CA 时,通过 ecdsa.GenerateKey 方法随机生成私钥,然后将该私钥转换为 PKCS#8 ASN.1 DER PEM 格式,作为 Key 的值;
- 公钥(Cert):利用前面生成的私钥对其自己的公钥进行签名(self-sign),生成 PKCS#8 ASN.1 DER 格式的证书,然后再将其转换为 PEM 格式,作为 Cert 的值;
- 证书(TLSCert):利用前面生成的私钥对其自己的公钥进行签名(self-sign),生成 PKCS#8 ASN.1 DER 格式的证书,然后对其进行解析,得到 *x509.Certificate,并赋值给 TLSCert;
- 背书者(Signer):其实就是前面利用 ecdsa.GenerateKey 方法随机生成的私钥。
func (*CA) NewClientCertKeyPair ¶
func (ca *CA) NewClientCertKeyPair() (*CertKeyPair, error)
NewClientCertKeyPair 利用自己的证书作为客户端证书的父级证书,然后利用自己的私钥为客户端签署证书(客户端的公钥),客户端的私钥是随机生成的。 一般来说,只有同一个 CA 创建的客户端和服务端,相互之间才能建立 TLS 连接。
func (*CA) NewIntermediateCA ¶
NewIntermediateCA 利用自己的私钥作为中级 CA(下级 CA)的背书者,然后利用自己的证书作为中级 CA 的父级证书,生成一个中级 CA。 中级 CA 的私钥是随机生成的。
- 私钥(Key):在生成 CA 时,通过 ecdsa.GenerateKey 方法随机生成私钥,然后将该私钥转换为 PKCS#8 ASN.1 DER PEM 格式,作为 Key 的值;
- 公钥(Cert):利用父级 CA 的私钥对自己的公钥进行签名,生成 PKCS#8 ASN.1 DER 格式的证书,然后再将其转换为 PEM 格式,作为 Cert 的值;
- 证书(TLSCert):利用父级 CA 的私钥对自己的公钥进行签名,生成 PKCS#8 ASN.1 DER 格式的证书,然后对其进行解析,得到 *x509.Certificate,并赋值给 TLSCert;
- 背书者(Signer):父级 CA 的私钥。
func (*CA) NewServerCertKeyPair ¶
func (ca *CA) NewServerCertKeyPair(hosts ...string) (*CertKeyPair, error)
NewServerCertKeyPair 利用自己的证书作为服务端证书的父级证书,然后利用自己的私钥为服务端签署证书(服务端的公钥),服务端的私钥是随机生成的。
type CertKeyPair ¶
type CertKeyPair struct {
// contains filtered or unexported fields
}
func (*CertKeyPair) PrivateKeyPEM ¶
func (ckp *CertKeyPair) PrivateKeyPEM() []byte
func (*CertKeyPair) PublicKeyDER ¶
func (ckp *CertKeyPair) PublicKeyDER() []byte
PublicKeyDER x509 公钥证书的 ASN.1 DER 编码格式。
func (*CertKeyPair) PublicKeyPEM ¶
func (ckp *CertKeyPair) PublicKeyPEM() []byte
PublicKeyPEM x509 公钥证书的 ASN.1 DER PEM 编码格式。
Click to show internal directories.
Click to hide internal directories.