首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为AWS中运行的Go执行mTLS

为AWS中运行的Go执行mTLS
EN

Stack Overflow用户
提问于 2022-10-07 13:46:05
回答 1查看 78关注 0票数 2

当前有一个Go HTTP,它使用github.com/gin-gonic/gin库来执行mTLS,如下所示:

代码语言:javascript
复制
router := gin.New()
router.GET("/ping", handlers.GinHandler{GC: globalConf, H: handler.Ping}.Handle())

// I'm checking errors but just for simplicity it's ommitted
caCert, _ := ioutil.ReadFile("ca.crt")
caCertPool, _ := x509.SystemCertPool()
caCertPool.AppendCertsFromPEM(caCert)

tlsConfig := &tls.Config{
    ClientCAs:  caCertPool,
    ClientAuth: tls.RequireAndVerifyClientCert,
}

server := &http.Server{
    Addr:      ":" + "8443",
    TLSConfig: tlsConfig,
    Handler:   router,
}

server.ListenAndServeTLS("ssl.crt", "ssl.key")

为了与AWS兼容,我似乎需要使用类似于github.com/apex/gateway的东西,但是只有一个ListenAndServe函数,而不是像net/http包那样的ListenAndServeTLS

在AWS函数中可以这样执行mTLS吗?

还是需要重写以在API中执行mTLS呢?如果是的话,是否可以将证书转发到Go app/Lambda函数以检查CN?

EN

回答 1

Stack Overflow用户

发布于 2022-10-07 13:58:50

在AWS函数中可以这样执行mTLS吗?

不不可能。TLS连接由API网关终止,然后通过AWS调用Lambda函数。Lambda函数从来没有来自传入请求的网络连接,因此无法在Lambda函数中执行mTLS。

还是需要重写以在API中执行mTLS呢?如果是的话,是否可以将证书转发到Go app/Lambda函数以检查CN?

是的,mTLS特性必须在API上实现。我建议跟随这份官方指南

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73988139

复制
相关文章

相似问题

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