登录
首页 >  Golang >  Go问答

在 Go 中如何读取字符串中的证书?

来源:stackoverflow

时间:2024-02-08 23:45:24 139浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《在 Go 中如何读取字符串中的证书?》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我正在编写一些代码,需要从环境变量中获取证书内容并将其附加到证书池中。

如果我通过环境变量传递证书的文件路径,它可以正常工作:

filename := os.getenv("cacert")
b, err := os.readfile(filename)
if err != nil {
    return nil, errors.errorf("unable to read root certificate")
}
if ok := pool.appendcertsfrompem(b); !ok {
    return nil, errors.errorf("cannot parse root certificate from %q", filename)
}

但是如果我传递证书的实际内容,appendcertsfrompem 会抛出错误:

cert := os.getenv("cacert")
if ok := pool.appendcertsfrompem([]byte(cert)); !ok {
    return nil, errors.errorf("cannot parse root certificate")
}

这是环境变量 cacert 中的字符串:

-----BEGIN CERTIFICATE-----

**certificate hash here**

-----END CERTIFICATE-----

正确答案


我不认为这是与golang相关的问题。这取决于您如何设置环境变量。您可能设置的内容格式错误(缺少换行符或其他原因)。

我的偏好是将带有换行符和其他特殊字符的字符串编码为 base64 并在使用时对其进行解码。

好了,本文到此结束,带大家了解了《在 Go 中如何读取字符串中的证书?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>