一: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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。