CA证书、自颁发证书、自签名证书联系
一、理论基础
ssl:secure socket layer(安全套接层协议)的缩写,通过此协议可以保证两个应用通信的可靠性和保密性。
openssl:是ssl协议的实现。提供了对称加密算法、非对称加密算法以及秘钥证书管理等功能。
公钥私钥:公钥和私钥组成一个密钥对,必须配对使用。一般公钥公开,私钥自己保留。
公钥加密,私钥解密,一般用于传输数据;
私钥加密,公钥解密,一般用于数字签名、验证身份。
证书:全称是公钥证书,由第三方机构CA颁发。CA利用自己的私钥对真正的公钥施加数字签名并生成证书,客户拿到证书后,通过CA的公钥来对证书解密,拿到真正的公钥。证书有两种编码格式:
1.pem:文本格式,以"-----BEGIN..."开头,以"-----end..."结尾,内容是base64编码,Apache和*nix服务器一般使用这种编码;
2.der:二进制格式,不可读,windows服务器一般偏向使用这种。
二、什么是CA证书、自颁发证书和自签名证书?
三、CA证书和自签名证书的异同?
如果你想要构建一个成功的网站,安全是关键因素之一,对于需要从访问者那里收集PIA(personally identifiable information,个人识别信息)的网站而言,尤其如此。
考虑一个需要输入社会保险号的网站,或更常见的,需要向其添加信用卡信息以完成购买行为的电子商务网站,在这样的网站上,安全不仅仅是来自那些访问者的期望,更是成功的关键。
如果你正在构建一个电子商务网站,首先就需要一个安全证书以便保证服务器的数据安全,对于证书的选择,即可以创建自签名证书,也可以从证书颁发机构(CA)获得由其签名的证书,让我们看看这两种证书的异同。
1、CA签名的证书和自签名证书的相似性
无论你的证书是由CA签名的,还是自己签名的,有一件事是完全相同的:你会得到一个安全的网站。通过HTTPS/SSL连接发送的数据将被加密,第三方无法窃听。
既然自签名证书也能做到这一点,那为何要向CA付款呢?
CA告诉你的客户:此服务器信息已由”信任源点“验证,最常用的CA是Verisign。CA会验证你的域名的所有权并颁发证书,这就能保证网站是安全而且合法的。
使用自签名证书的问题是,几乎每一个Web浏览器都会检查HTTPS连接是否由可信的CA签名,如果该连接是自签名的,则会将其标记为潜在风险并弹出错误消息,你的客户对该站点信任度就会降低。
简要总结:CA签名的证书兼具“身份证明”和“加密”双重功能,而由于自证身份不可信,自签名证书就只有加密功能,用于无需身份证明的场合。
2、在何种情况下可以使用自签名证书?
由于它们提供了相同的保护能力,所以能在任何使用CA签名证书的场合中使用自签名证书,但在某些场合特别适用自签名证书。例如,自签名证书非常适合测试HTTPS服务器,你不必仅仅为测试网站就要支付CA签名证书的费用,只需提醒测试人员他们的浏览器可能弹出警告信息。
也可以在需要输入隐私信息的情况下使用自签名证书,例如:
●用户名和密码表单
●收集个人(非财务)信息
当然,只有那些了解并信任你的人才会使用这样的网站。所以你看到了,归根结底就是“信任”二字。当你使用自签名证书时,你是在对客户说:“请相信我——我就是我说的我”;当你使用由CA签名的证书时,你是在说:“请相信我——因为Verisign可以证明我的身份”。
如果你在做电子商务,就需要一个CA签名证书。如果你使用自签名证书只是为了客户登录你的网站,那么他们可能会原谅你,但如果要求他们输入信用卡或Paypal的信息,那么你真的需要一个CA签名的证书,因为大多数人信任CA签名的证书,如果没有它,就不会通过HTTPS服务器做生意。所以如果你想在你的网站上卖东西,那就投资于证书吧,这只是做生意的成本。
链接:https://www.jianshu.com/p/45e804733a23