我可以创建自己的根证书用于与Go进行SSL连接吗?这安全吗?
问题描述:
我在用Go编写一个简单的客户端和服务器。我不想为SSL证书付费,而且我已经看过,自签名证书对证明身份没有用处,因为攻击者可能只是MITM并提供了自己的自签证书。我可以创建自己的根证书用于与Go进行SSL连接吗?这安全吗?
但是,我知道我可以让我的客户端使用任何我想要的根证书。我可以创建我自己的,让客户信任,为我的服务器签名证书,并在受到MITM攻击保护的同时安全连接?如果是这样,我该如何创建我自己的根证书?
答
自签名证书是部署自己的PKI的特殊情况(推到极限,在该PKI中只有一个证书)。
只要客户端可以使用它预先知道的信任锚(证书)(并且已经以可信的方式配置它们)来验证服务器证书,它们都可用于防止MITM攻击。
您可以创建自己的CA并配置客户端使用其根CA证书,或者如果您只有非常有限的一组服务器,则通常可以将客户端配置为直接信任特定证书(自签名或不签名)。
你可能有兴趣在这些问题中的链接工具:
- Solutions to sign certificates
- Recommendations for a Certificate Management tool for Linux
- OpenSSL's CA.pl(有用的,但可能缺乏通用管理接口)
一旦你”已经了解了基本原理,技术方面并不一定困难,但真正困难的一部分是在管理员您的CA的许可证。
没有尝试过,这可能有帮助:http://www.eclectica.ca/howto/ssl-cert-howto.php/ – jimt 2012-07-23 15:15:05