1 Star 0 Fork 0

carlmax_my/console-core-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.vscode
cmd
pkg
alert
aliyun
api
authing
browser
cache
cert
cfssl
clickhouse
color
core
cron_runner
crypto
ddm
debugs
env
errors
exec
file
geo
httpclient
idp
influxdb
ip_util
jwt
ldap
logger
mail
mfa
model
mongo
mysql
password
redis
shutdown
signature
store
timeutil
trace
urltable
util
validate
viper
websocket
hub
listen
mtls
demo
client
server
server2.go
README.md
client.go
server.go
session
winipcfg
test
vpn
.gitignore
LICENSE
README.md
go.mod
go.sum
克隆/下载
server2.go 1003 Bytes
一键复制 编辑 原始数据 按行查看 历史
carlmax_my 提交于 3个月前 . init project
package mtls
import (
"crypto/tls"
"crypto/x509"
"fmt"
"io"
"log"
"net/http"
"os"
)
type httpsHandler struct {
}
func addTrust(pool *x509.CertPool, path string) {
aCrt, err := os.ReadFile(path)
if err != nil {
fmt.Println("ReadFile err:", err)
return
}
pool.AppendCertsFromPEM(aCrt)
}
func (*httpsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "golang https server!!!")
}
func main() {
pool := x509.NewCertPool()
// 这里是加载客户端提供的证书,最好是加载客户端提供的根证书
addTrust(pool, "../sslFile/ca.crt")
addTrust(pool, "../sslFile/ville.crt")
s := &http.Server{
Addr: ":8080",
Handler: &httpsHandler{},
TLSConfig: &tls.Config{
ClientCAs: pool,
ClientAuth: tls.RequireAndVerifyClientCert,
},
}
// 这里是加载 服务端自己的证书和私钥
if err := s.ListenAndServeTLS("../sslFile/server.crt", "../sslFile/server.key"); err != nil {
log.Fatal("ListenAndServeTLS err:", err)
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/carlmax_my/console-core-go.git
git@gitee.com:carlmax_my/console-core-go.git
carlmax_my
console-core-go
console-core-go
v0.0.31

搜索帮助