非自签名证书给出由未知授权错误签名的证书

Non-self signed certificate gives certificate signed by unknown authority error

我有一个 API 服务器使用由受人尊敬的 CA 颁发的非自签名证书。当我连接到此服务器时,出现以下错误:

x509: certificate signed by unknown authority

我使用 net/http 库使用 golang 客户端进行连接。证书已正确配置,因为我没有收到有关它的错误消息。

没想到会出现这个错误,因为我正在使用 CA。我在使用网络浏览器时没有收到错误消息。

问题是我没有将中间 CA 证书传递给 http 服务器。方法 http.ListenAndServeTLS 需要同一证书文件中的中间 CA 证书。

修复很简单,只需在证书文件中添加 CA 的中间证书即可:

-----BEGIN CERTIFICATE-----
<YOUR OWN CERTIFICATE>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
<INTERMEDIATE CA CERTIFICATE>
-----END CERTIFICATE-----