1

一:https所用的证书申请

1.1生成公钥私钥

先在本地服务器使用RSA算法生成加密所用的公钥和私钥。

1.2 发给CA

将自己的公钥 + 自己服务器的一些信息(国家,机构……) + 私钥给之前信息做的签名,发送给CA

1.3 CA签名验证

当CA收到你的信息后首先用提交的信息中的公钥验证签名的正确性。
然后对你的信息进行审核,审核通过后,CA用自己的私钥给你的信息做一个签名,然后发给你。

1.4 下载证书

然后你就可以去CA把你的证书下载下来了

概念补充

公钥

可以提供给别人,而证书中存在的就是你自己服务器的公钥。
1 用于加密 公钥是用来加密信息,并且其加密的信息只有其对应的私钥可以解密
2用于判断签名真实性 公钥就是对私钥的签名进行解密。
这两个功能的公钥是一样的,但是算法是不一样的。
一个是加密算法,一个是验证算法(类似于解密算法)

私钥

自己保存,不可以提供给其他人。
1 用于解密 私钥是用来解密的,用来解密由其对应公钥加密的信息。
2 用于签名 对信息的摘要进行签名(加密)算法。
这两个功能私钥是一样的,算法不一样

加密

就是将你的信息和公钥进行加密运算,然后生成一个加密信息

解密

就是将接受的加密信息和私钥进行解密运算,然后得到信息  

签名

先对自己的信息进行hash运算,生成摘要,然后把摘要和私钥一起运算得到的就是签名(其实就是一串字符串)

验证

对接受的信息的主体进行hash算法(要和签名的hash算法相同),然后将签名和公钥进行运算得到一个摘要,这两个摘要一样就说明信息没有被篡改.

加解密

加解密是为了保证信息不被别人截获后直接就得到内容。

签名

这个是为了防止别人冒充自己。或者截取自己的信息后更改后又发给接受者。

hash算法

哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,且不可逆。可以说hash值就可以唯一代表其hash之前的内容。这样在保证唯一性的情况下,让签名变短。

CA 权威证书机构

你的浏览器中天生内置了一些大厂的CA证书,这些证书中存放的就是这些CA的公钥。这样当你收到我的一份被其中一个CA签名的证书后。你就可以通过公钥验证我的信息是否是真实的。

对于公钥和私钥的加解密和签名验证算法,可以看这个知乎答案
https://www.zhihu.com/questio...


醒了和起床是两码事
263 声望15 粉丝

ddd