大佬教程收集整理的这篇文章主要介绍了Golang SSL TCP套接字证书配置,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
该RootCAs@H_616_4@字段用于客户端验证服务器证书。我假设您只想提供一个证书进行验证,因此您需要的任何内容都应加载到
Certificates@H_616_4@切片中。
这是一个最小的示例:
cert, err := tls.LoadX509KeyPair("example.com.pem", "example.com.key")
if err != nil {
log.Fatal("Error loading certificate. ", err)
}
tlsCfg := &tls.Config{Certificates: []tls.Certificate{Cert}}
Listener, err := tls.Listen("tcp4", "127.0.0.1:5555", tlsCfg)
if err != nil {
log.Fatal(err)
}
defer Listener.Close()
for {
log.Println("WaiTing for clIEnts")
conn, err := Listener.Accept()
if err != nil {
log.Fatal(err)
}
go handle(conn)
}
@H_616_4@
即使您没有使用httpS,也可以从开始浏览整个服务器设置http.ListenAndServeTLS@H_616_4@。
我正在创建一个Go TCP服务器(不是http /
s),并且试图将其配置为使用SSL。我有一个StartCom免费SSL证书,正试图用来完成此任务。我的服务器代码如下:
cert,err := tls.LoadX509KeyPair("example.com.pem","example.com.key")
if err != nil {
fmt.Println("Error loading certificate. ",err)
}
trustCert,err := ioutIl.ReadFile("sub.class1.server.ca.pem")
if err != nil {
fmt.Println("Error loading trust certificate. ",err)
}
validationCert,err := ioutIl.ReadFile("ca.pem")
if err != nil {
fmt.Println("Error loading validation certificate. ",err)
}
certs := x509.NewCertPool()
if !certs.AppendCertsFromPEM(validationCert) {
fmt.Println("Error installing validation certificate.")
}
if !certs.AppendCertsFromPEM(trustCert) {
fmt.Println("Error installing trust certificate.")
}
sslConfig := tls.Config{RootCAs: certs,Certificates: []tls.Certificate{Cert}}
service := ":5555"
tcpaddr,error := net.ResolveTCpaddr("tcp",servicE)
if error != nil {
fmt.Println("Error: Could not resolve address")
} else {
netListen,error := tls.Listen(tcpaddr.Network(),tcpaddr.String(),&sslConfig)
if error != nil {
fmt.Println(error)
} else {
defer netListen.Close()
for {
fmt.Println("WaiTing for clients")
connection,error := netListen.Accept()
@H_616_4@
我尝试切换证书的顺序,但不包括某些证书等,但是的输出openssl s_client -CApath /etc/ssl/certs/ -connect
localhost:5555@H_616_4@基本上保持不变
verify error:num=20:unable to get local issuer
certificate@H_616_4@。有关完整输出,请参见此处。我对中间证书似乎做错了,但是我不知道该怎么办。我已经为此工作了几天,进行了大量的谷歌搜索和搜索,但似乎没有什么适合我的情况。我已经在Apache和HAProxy中设置了许多证书,但这确实使我感到困惑。
以上是大佬教程为你收集整理的Golang SSL TCP套接字证书配置全部内容,希望文章能够帮你解决Golang SSL TCP套接字证书配置所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。