带有 GoDaddy 证书的 HTTP SSL - 此服务器的证书链不完整

2023-12-12

一般来说,我从 GoDaddy 获得了 3 个文件:

  1. 主证书文件
  2. 服务器私钥
  3. 捆绑文件

通过以下方式在我的 Go 服务器中配置了所有这些文件:

cert, err := tls.LoadX509KeyPair("myalcoholist.pem","myalcoholist.key")
if err != nil {
    log.Fatalf("server: loadkeys: %s", err)

}
    pem, err := ioutil.ReadFile("cert/sf_bundle-g2-g1.crt")
    if err != nil {
        log.Fatalf("Failed to read client certificate authority: %v", err)
    }
    if !certpool.AppendCertsFromPEM(pem) {
        log.Fatalf("Can't parse client certificate authority")
    }
    tlsConfig := &tls.Config{
        ClientCAs:    certpool,
    Certificates: []tls.Certificate{cert},
    }

    srv := &http.Server{
    Addr: "myalcoholist.com:443",
    Handler: n,
    ReadTimeout: time.Duration(5) * time.Second,
    WriteTimeout: time.Duration(5) * time.Second,
    TLSConfig: tlsConfig,
}
err := srv.ListenAndServeTLS("cert/myalcoholist.pem","cert/myalcoholist.key")

网络服务器运行正常,目前发布于https://myalcoholist.com:443.

我使用以下方法验证了我的 SSLhttps://www.ssllabs.com/ssltest/analyze.html?d=myalcoholist.com它的回应是This server's certificate chain is incomplete. Grade capped to B.

您可以访问此链接查看所有详细结果。

我缺少什么?


下列的那个线程,并且从net/http/#ListenAndServeTLS() doc:

如果证书由证书颁发机构签名,则 certFile 应该是服务器证书、任何中间证书和 CA 证书的串联。

尝试并确保您的cert/myalcoholist.pem还包括 CA 证书。

该线程使用:

myTLSConfig := &tls.Config{
    CipherSuites: []uint16{
        tls.TLS_RSA_WITH_RC4_128_SHA,
        tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA,
        tls.TLS_RSA_WITH_AES_128_CBC_SHA,
        tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA},}
myTLSConfig.PreferServerCipherSuites = true
const myWebServerListenAddress = "0.0.0.0:5555"
myTLSWebServer := &http.Server{Addr: myWebServerListenAddress, TLSConfig: myTLSConfig, Handler: router}
if err = myTLSWebServer.ListenAndServeTLS("/home/loongson/webServerKeysV2/golangCertFile2", "/home/loongson/webServerKeysV2/adequatech.ca-comodoinstantssl-exported-privatekey-rsa-ForApache.key"); err != nil {
    panic(err)

}

相比我之前的回答,添加密码套件是一个好主意,但是再次尝试看看证书文件是否传递到ListenAndServeTLS如果包含 CA,效果会更好。


果然,https://www.ssllabs.com/ssltest/analyze.html?d=myalcoholist.com报告为 A 级,并带有警告:“链条问题:包含锚”。
See "SSL/TLS:如何解决“链问题:包含锚点”” 删除该警告,但是但这不是一个错误:

RFC 2119:服务器可以在链中包含根证书(也称为“信任锚”),也可以省略它。有些服务器包含它

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 GoDaddy 证书的 HTTP SSL - 此服务器的证书链不完整 的相关文章

随机推荐

  • java.lang.NoClassDefFoundError:com.google.android.gms.gcm.GoogleCloudMessaging

    我正在使用开发 GCM 示例应用程序http javapapers com android google cloud messaging gcm for android and push notifications comment 1037
  • 删除查询字符串“?” HTML 形式的方法 GET

    我有一个在新窗口中打开的简单的 Google 图片搜索表单 当我想将表单参数更改为 Unsplash 在 URL 搜索中不使用查询字符串 时 表单继续发送查询字符串 HTML
  • TYPO3 Ajax 页面配置

    如何从 TYPO3 中的 Ajax 页面删除 CSS 样式的 conted 标头输出 这是我的打字稿 ajax PAGE ajax typeNum 1234 this solution is working but then I don t
  • 使用 http.request 获取 Node.js 中的二进制内容

    我想从 https 请求中检索二进制数据 我找到了一个类似的问题使用请求方法 使用 request 获取 Node js 中的二进制内容 是说设置encoding to null应该有效 但事实并非如此 options hostname u
  • 在 ggplot2 中,在顶部绘制反转 y 轴和 x 轴的图

    我想得到ggplot2绘制顶部带有反转 y 轴和 x 轴的图 我用了scale y reverse 获得反向 y 轴 但无法弄清楚如何将 x 轴放在顶部而不是底部 dfn lt read table header T text supp d
  • Matplotlib 对数刻度刻度标签,乳胶字体中的减号太长

    我在 matplotib 中使用 text usetex True 这对于具有线性比例的图来说非常有用 然而 对于对数刻度 y 刻度如下所示 指数中的负号占用了绘图中的大量水平空间 这不太好 我希望它看起来像这样 该字体来自 gnuplot
  • 日期时间转 JavaScript 日期

    Stackoverflow 上的另一个答案是从 Javascript 日期到 net DateTime 的转换 long msSinceEpoch 1260402952906 Value from Date getTime in JavaS
  • 在球体上使用多个纹理 [Three.js]

    是否可以在球体上加载多个纹理 我的意思是说有什么办法Three js将球体分割成n碎片 单独纹理它们并再次将这些碎片渲染为整个球体 我不想在球体上加载整个纹理 而是只渲染用户首先在屏幕上看到的那些部分 并且当用户旋转球体时 必须加载纹理的其
  • 在边框中间剪开

    我试图实现悬停时看起来像图像的边框 我不知道如何描述边界 但有什么方法可以实现这一点吗 text width 100px height 20px text align center text hover border 1px solid b
  • Blazor 中的轮询线程

    我正在使用 REST API 和 Web 界面构建 Blazor 应用程序 我还将有一个应用程序的监视部分 它将每秒从许多不同的数据源轮询数据 我在一个单独的类中创建了一个长时间运行的线程 它只是轮询我想要的数据 并且似乎工作正常 我使用的
  • 如何检查字典是否为空?

    我正在尝试检查字典是否为空 但它的行为不正常 它只是跳过并显示ONLINE除了显示消息之外没有任何其他内容 有什么想法吗 def isEmpty self dictionary for element in dictionary if el
  • iPod Touch 上的飞行模式——重新审视

    情况是这样的 我们有一个记录声音的应用程序 如果应用程序在第二代 iPod Touch 上运行且飞行模式关闭 则由于 iPod 的 WIFI 活动 录音中会出现周期性噪音 因此 我想检测我们是否正在第二代 iPod Touch 上运行 我知
  • 如何以另一个用户(la /netonly)身份启动 Internet Explorer 进程?

    我正在尝试从我们的 WPF 应用程序中以另一个用户身份启动 Internet Explorer 以便当我们的用户访问 内部 网站时 他们会通过集成 Windows 身份验证进行静默身份验证 我们不想以其他用户身份启动 iexplore ex
  • Android是如何定义屏幕分辨率的呢?

    在Android中 您可以通过适当命名res目录来为不同的手机属性定义不同的资源 我需要能够支持不同的布局480x800 and 480x854 我想我可以将一组资源存储在layout hdpi v4目录中 另一组资源存储在layout l
  • C:如何比较两个字符串? [复制]

    这个问题在这里已经有答案了 Edit 这是重复的 我已将其标记为重复 参见 问题 为什么 C 语言中 a a 所以我试图根据结构中的字段打印出特定的消息 该字段包含字符串 1 每当我跑步时printf s record fields 2 输
  • 在 Objective-C 方法中引用 BOOL 值

    这是代码的一小部分 interface BOOL isCarryingmallet implementation BOOL isCarryingWeapon return isCarryingMallet int getWeaponDama
  • 在“源/网络”选项卡中复制多个 URL

    是否可以在 Chrome 开发工具的 源 或 网络 选项卡中提取多个资源的 URL 当我想获取某个 URL 时single资源 我可以使用上下文菜单功能来完成复制链接地址 我可以从 网络 选项卡切换到此资源 反之亦然 但如果我需要获取以下
  • 正则表达式 - 从字符串中提取电话号码

    我需要从带有分隔符 波形符 的字符串中提取两个电话号码 棘手的部分是电话号码的格式可能会有所不同 字符串模式保持不变 但电话号码的格式可以是以下三种类型之一 1 4 digit extensions ex 1001 2 10 digit 5
  • Jenkins 持续集成服务器的作业特定 SVN 签出文件夹

    我刚刚设置了一个新的 Jenkins CI 服务器 这是我昨天刚安装的最新版本 我已经完成了几个工作正常的构建 我有几个不同的存储库 它可以从中提取和构建 其中大多数适用于 NET 项目等易于在任何地方构建的项目 因此只需在工作区文件夹中签
  • 带有 GoDaddy 证书的 HTTP SSL - 此服务器的证书链不完整

    一般来说 我从 GoDaddy 获得了 3 个文件 主证书文件 服务器私钥 捆绑文件 通过以下方式在我的 Go 服务器中配置了所有这些文件 cert err tls LoadX509KeyPair myalcoholist pem myal