【发布时间】:2014-02-28 23:59:40
【问题描述】:
我有一个证书文件,该位置是:/usr/abc/my.crt,我想将该证书用于我的 tls 配置,以便我的 http 客户端在与其他服务器通信时使用该证书。我目前的代码如下:
mTLSConfig := &tls.Config {
CipherSuites: []uint16 {
tls.TLS_RSA_WITH_RC4_128_SHA,
tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA,
tls.TLS_RSA_WITH_AES_128_CBC_SHA,
tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
tls.TLS_RSA_WITH_AES_128_CBC_SHA,
tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
}
}
mTLSConfig.PreferServerCipherSuites = true
mTLSConfig.MinVersion = tls.VersionTLS10
mTLSConfig.MaxVersion = tls.VersionTLS10
tr := &http.Transport{
TLSClientConfig: mTLSConfig,
}
c := &http.Client{Transport: tr}
那么如何在我的 TLS 配置中分配证书?我在http://golang.org/pkg/crypto/tls/#Config 看到证书设置,有人可以建议如何在那里配置我的证书位置吗?
mTLSConfig.Config{Certificates: []tls.Certificate{'/usr/abc/my.crt'}}
之前,我编辑了 go 源代码 http://golang.org/src/pkg/crypto/x509/root_unix.go 并在第 1 行之后添加了 /usr/abc/my.crt。 12,它奏效了。但问题是我的证书文件位置可能会改变,所以我从 root_unix.go 中删除了硬编码行,并在构建 TLSConfig 时尝试动态传递它。
【问题讨论】:
标签: ssl go ssl-certificate