首页  >  文章  >  后端开发  >  如何在 Go Web 服务器中串联 HTTPS 的 PEM 证书?

如何在 Go Web 服务器中串联 HTTPS 的 PEM 证书?

Barbara Streisand
Barbara Streisand原创
2024-11-10 14:07:02504浏览

How to Concatenate PEM Certificates for HTTPS in Go Web Servers?

在 Go Web 服务器中串联 HTTPS 的 PEM 证书

为 Go Web 服务器设置 HTTPS 时,经常会遇到需要串联的情况多个 PEM 证书文件。此过程对于创建包含主证书和中间证书的完整证书链至关重要。

获取中间证书

通常,您将获得一个捆绑包购买 SSL 证书时的 PEM 文件,包括:

  • csr.pem (忽略)
  • private-key.pem(私钥)
  • website.com.crt(主证书)
  • website.com.ca-bundle(中间证书)
  • website.com.zip(压缩版本包)

连接证书

根据 https://www.kaihag.com/https-and-go/ 上的文档,您需要连接以下 PEM 文件:

  • website.com.ca-bundle(中级证书)
  • website.com.crt(主证书)

为此,您可以使用以下命令(假设文件位于当前目录中):

cat website.com.ca-bundle website.com.crt > full-cert.crt

这将创建一个名为 full-cert.crt 的组合证书文件,其中包含中间证书和您的主证书

在 Go 中设置 HTTPS

一旦有了串联的证书文件,就可以使用 http.ListenAndServeTLS 函数在 Go 中启动 HTTPS 服务器。以下是示例代码片段:

package main

import (
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("Hello, HTTPS!"))
}

func main() {
    log.Printf("About to listen on 10443. Go to https://127.0.0.1:10443/")
    err := http.ListenAndServeTLS(":10443", "full-cert.crt", "private-key.pem", nil)
    log.Fatal(err)
}

将 full-cert.crt 替换为串联证书文件的名称,将 private-key.pem 替换为私钥文件的名称。运行程序并访问 https://127.0.0.1:10443/ 确认 HTTPS 正常工作。

以上是如何在 Go Web 服务器中串联 HTTPS 的 PEM 证书?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn