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

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

Barbara Streisand
发布: 2024-11-10 14:07:02
原创
527 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板