mozillazg / go-cos

腾讯云对象存储服务 COS(Cloud Object Storage) Go SDK(XML API)
https://godoc.org/github.com/mozillazg/go-cos
MIT License
88 stars 26 forks source link

内网的时候x509有办法吗 #8

Closed hyacinthus closed 5 years ago

hyacinthus commented 5 years ago

在内网的时候,cos会解析到内部地址,然后ca证书就有问题了 golang就会报

x509: certificate signed by unknown authority

我现在改用http了,但是官方显示的链接就是https的,万一哪天http不能用了怎么办很慌。

mozillazg commented 5 years ago

@hyacinthus 可以试试下面的办法:

hyacinthus commented 5 years ago

好的,谢谢,我发工单吧。完了可以考虑把官方的回复放readme里,毕竟后端库多半是内网访问的需求。。。

hyacinthus commented 5 years ago

结果腾讯云新鲜出炉了一个 cos golang sdk 我看他们大量参考了这个库呢 不过算是把没实现的补齐了

https://github.com/tencentyun/cos-go-sdk-v5

mozillazg commented 5 years ago

@hyacinthus 他们的版本没有这个证书问题?如果他们的版本没有的话,我在 README 里添加一下这个问题。

hyacinthus commented 5 years ago

我还没抽出空来切,我现在去切换试下。

hyacinthus commented 5 years ago

哎 被骗了,他们的也报……

我还把工单关了,再开一个去。

yaoxingshuai commented 5 years ago

mozillazg,我看cos最近出的go sdk和你这个很像,你是在腾讯工作吗

mozillazg commented 5 years ago

@yaoxingshuai 没,我没在腾讯工作。

solarhell commented 5 years ago

腾讯直接抄了代码,MIT协议里署名也没有了...

mozillazg commented 5 years ago

@solarhell 有呀:https://github.com/tencentyun/cos-go-sdk-v5/blob/master/LICENSE#L3

hyacinthus commented 5 years ago

不好意思,经过一番折腾,想起来我遇到过这个坑。 虽然走的内网但是cvm是能连外网的,应该是能验证签名的呀。 于是想起来 debian 的裸镜像是没预装证书的。 需要在 dockerfile 里自己装 ca-certificates 这个包。

...
FROM debian

RUN apt-get update \
    && apt-get install -y -q --no-install-recommends \
    ca-certificates \
    && apt-get clean \
    && rm -r /var/lib/apt/lists/*

ENV TZ=Asia/Shanghai

COPY --from=build-env /app/app /usr/bin/app

CMD ["app"]

在 debian 只要访问 HTTPS 就要装这个证书……