ssl-certificate - 我可以创建自己的根证书以用于与 Go 的 SSL 连接吗?这样安全吗?

标签 ssl-certificate go ssl self-signed

我正在使用 Go 编写一个简单的客户端和服务器。我不想为 SSL 证书付费,而且我读到自签名证书对于证明身份毫无用处,因为攻击者可能只是 MITM 并提供他自己的自签名证书。

但是,我了解到我可以让我的客户使用我想要的任何根证书。我是否可以自己创建一个,让客户信任它,为我的服务器签署一个证书,并在受到保护免受 MITM 攻击的同时安全地连接?如果是这样,我该如何创建自己的根证书?

最佳答案

自签名证书是部署您自己的 PKI 的一种特殊情况(被推到极端,您在该 PKI 中只有一个证书)。

两者都可以用来防止 MITM 攻击,前提是客户端可以使用它事先知道的信任 anchor (证书)来验证服务器证书(并且已经以受信任的方式配置了它们)。

您可以创建自己的 CA 并将客户端配置为使用其根 CA 证书,或者,如果您只有一组非常有限的服务器,通常可以将客户端配置为直接信任特定证书(自签名或非自签名) .

您可能对工具链接的这些问题感兴趣:

一旦您了解了基本原理,技术方面就不一定困难了,但真正困难的一部分在于您的 CA 的管理。

关于ssl-certificate - 我可以创建自己的根证书以用于与 Go 的 SSL 连接吗?这样安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11613889/

相关文章:

asp.net - 使用嵌入在请求头中的 SSL 客户端证书

go - 使用 map , slice 或 channel 类型进行类型安全

go - Cgo:抱歉,未实现:64 位模式未编译

redirect - 设置 ssl 和 http 重定向到 https

c# web api - 使用 HTTPS 运行 web 应用程序 - 添加证书并启用 SSL 但连接被拒绝

python - 使用 python 在 docker 中唯一出现本地颁发者证书错误

php - 如何使用 phpseclib 验证证书是否由公共(public) CA 签名?

ssl - 如何从 itext bouncycaSTLe tsaclient 建立 ssl 连接

ssl - https 在 Xampp 上不起作用

go - redigo:读取具有可变键的 redis 哈希