登录
首页 >  Golang >  Go问答

具有多个证书的 http.ListenAndServeTLS

来源:Golang技术栈

时间:2023-04-09 11:57:08 470浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《具有多个证书的 http.ListenAndServeTLS》,聊聊golang,我们一起来看看吧!

问题内容

如何使用多个域进行 ListenAndServeTLS?我看到该函数接受证书和密钥文件,但我相信密钥文件可能只包含一个私钥。我有几个私钥,用于不同的证书链。

正确答案

http.ListenAndServeTLS旨在提供一个最基本的配置。如果要添加其他选项,可以http.Server使用自定义创建一个tls.Config. 然后,您可以手动映射名称tls.Config.NameToCertificate,或调用BuildNameToCertificate()以编程方式构建映射。

但是,您仍然可以使用Server.ListenAndServeTLS,因为它将加载配置中的证书以及通过方法 args 传入的证书。

cfg := &tls.Config{}

cert, err := tls.LoadX509KeyPair("cert_one.pem", "key_one.pem")
if err != nil {
    log.Fatal(err)
}

cfg.Certificates = append(cfg.Certificates, cert)
// keep adding remaining certs to cfg.Certificates

cfg.BuildNameToCertificate()

server := http.Server{
    Addr:      "127.0.0.1:443",
    Handler:   myHandler,
    TLSConfig: cfg,
}

server.ListenAndServeTLS("", "")

文中关于golang的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《具有多个证书的 http.ListenAndServeTLS》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>