【发布时间】:2017-02-23 12:21:25
【问题描述】:
我有一个 API 服务器,它使用由受人尊敬的 CA 颁发的非自签名证书。当我连接到此服务器时,我收到以下错误:
x509: 由未知机构签署的证书
我使用使用 net/http 库的 golang 客户端进行连接。证书配置正确,因为我没有收到抱怨它的错误。
我没想到会出现此错误,因为我使用的是 CA。使用网络浏览器时我没有收到错误消息。
【问题讨论】:
我有一个 API 服务器,它使用由受人尊敬的 CA 颁发的非自签名证书。当我连接到此服务器时,我收到以下错误:
x509: 由未知机构签署的证书
我使用使用 net/http 库的 golang 客户端进行连接。证书配置正确,因为我没有收到抱怨它的错误。
我没想到会出现此错误,因为我使用的是 CA。使用网络浏览器时我没有收到错误消息。
【问题讨论】:
问题是我没有将中间 CA 证书传递给 http 服务器。方法http.ListenAndServeTLS需要在同一个证书文件中的中间CA证书。
修复很简单,只需在证书文件中添加 CA 的中间证书即可:
-----BEGIN CERTIFICATE-----
<YOUR OWN CERTIFICATE>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<INTERMEDIATE CA CERTIFICATE>
-----END CERTIFICATE-----
【讨论】: