由于}备案网站,所谓的明文传输就是在通信双方的中间通过抓包发现,url中的信息,不要小看这些的数据部分也是明文,可以很容易还原出数据内容,例如文字,图片和视频。域名证书是什么,数字签名、数字证书、SSL、https之间是什么关系因此就出现了服务,将明文传输的内容进行加密,包括}确切的说并不是一种协议,而是TLS 还是以前的和TCP(当然也有DTLS,不多说)层之间加入了ssl协议,这样tcp上层的数据部分就可以加密传输。 关于加密发展的历史,我在这篇文章中有一定的阐述。其实ssl可以设计的很简单,因为该层主要作用就是协商通信双方加密密钥,然后对上层数据进行加解密。ssl之所以设计如此复杂的原因,还是在于数字证书的存在。首先加密有两种方式,对称加密和非对称加密,其中对称加密的速度要快于非对称加密,因此在实际的应用中数据量大的加密都是对称加密。但是对称加密无法保证密钥的安全,因此需要非对称加密来传输对称加密所使用的密钥,而非对称加密由于需要验证通信对等方的身份,因此需要数字证书。当然数字证书的作用就是携带签验证通信对等方的身份名,在openssl(openssl是ssl协议那一堆RFC的实现)中,证书还有另一个作用就是携带非对称加密公钥以及非对称算法等。在非对称加密中有两个概念需要注意的,就是签名和加密。举例来说,RSA是一种非对称加密算法,该算法即可以用于加密,也可以用于签名。所谓RSA加密就是使用公钥进行加密,私钥进行解密,应用就是ssl协议中的预主密钥交换部分;所谓的RSA签名就是使用私钥进行签名(其实也是加密,只是换一种说法),使用公钥验证签名,对应ssl握手中的证书签名和验签部分。证书的验证过程就是,网站证书certA部分的签名由签发该证书CA验证,主要是该CA的公钥进行验签,因为certA的签名部分是由CA的私钥进行签名的;当然为了证明CA的身份,CA也需要一个证书,就是CA 的证书certB,certB是由更高一级的CA签发的,直至根CA。当然根CA也有一个证书就是根证书certC,通常该证书是集成在firefox这种浏览器厂商里面的,或者像android这种操作系统里面。因此整个过程就是certA使用certB的公钥验证certA的合法性,certB使用certC的公钥验证certB的合法性,整个证书链必须全部验证通过,证书的验证才能通过。可以看到整个验证最关键的地方在于根证书。如果系统中手动安装了虚假的根证书,整个证书链的验证就会出现问题。因此,像前面提到的那样,根证书的集成是很关键的,是多家厂商和浏览器以及操作系统公司协商,资质认定的结果。像前一段时间沃通被吊销根证书就是这些国外的浏览器巨头和操作系统巨头认定沃同不具备根证书的资格,说白了就是信用有问题,然后从浏览器以及操作系统中被删除。那么由沃通授权的CA所签发的证书就会受到影响。具体就是浏览器会弹出告警信息。因此可以看出即使是根证书机构,也是要约束自己的行为,不能随意签发证书。当然实际上证书的验证还包括证书里面的使用者信息或者扩展中的altname要和实际访问的域名保持一致,日期不能失效等等,crl以及oscp列表等。因此这就导致了我们在申请证书的时候,是需要填写证书的域名信息,也就是申请的证书是应用于哪个网站的。证书的时间信息一般是由签发的CA决定的,可能是一年的有效期或者更长。当然,由于某种原因,例如网站私钥泄漏了,需要重新申请证书,该证书就被废弃掉,添加到crl列表。以上就是,SSL,数字证书,数字签名之间的一些关系。