func ListenAndServeTLS(addr string, certFile string, keyFile string, handler Handler) error
以上是我在 Golang 中调用以启动 https 服务器的函数。它工作没有任何问题。但是,由于我有更多的部署,我不想将我的 key 文件放在各处。所以我想让程序从一个集中的地方下载 key 文件和证书文件。如果有一个类似的函数接收 []byte
而不是 string
,我将很容易做到这一点。但我似乎没有在文档中看到这样的功能。
最佳答案
寻找 at the source of ListenAndServeTLS
好像没有选项,总是调用tls.LoadX509KeyPair
.
那真不幸;可能值得提交功能请求。
与此同时,ListenAndServeTLS
方法并不大,而且(tcpKeepAliveListener
除外)它不使用任何未导出的内容,因此很容易复制将该方法的主体添加到您自己的函数中,并将 Load509KeyPair
替换为 tls.X509KeyPair
,它确实采用 PEM 编码数据的 []byte
而不是文件名。 (或者可能采用 tls.Certificate
参数。)
例如类似 https://play.golang.org/p/ui_8dS8ouU 的东西
关于Golang https 服务器以字节数组形式传递 certFile 和 kyeFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30815244/