公钥与密钥应用的两种情形
- 用于数据加密
- 两个人:Bob和Alice;Bob有自己的公钥和私钥,他把公钥公布给大家;当Alice给Bob发送数据时,她使用Bob的公钥加密这些数据;因为使用Bob的公钥加密的数据只有Bob的私钥能解密,所以Alice发送给Bob的数据只有Bob能解密并查看,其他人是不能解密的(除非他有Bob的私钥)。
- 用于认证
- Bob和Alice通信,Bob如何向Alice证明自己就是Bob呢?Bob可以向Alice发一段用自己的私钥加密的内容,如果Alice可以使用Bob的公钥解密说明对方是Bob。
- 这两种情形有一个比较明显的问题:Alice怎么收到Bob公布的公钥?Alice怎么知道自己收到的公钥就是Bob的公钥?这个时候就需要第三方来认证了,那就是数字证书。
数字证书
- 上面提到的只是对公钥和私钥的简单说明,实际过程很复杂,所以后来才发展出了数字证书,数字证书就是用来数字证书发送方证明数字证书持有人的。以Bob和Alice为例,就是Bob向Alice证明自己就是Bob的。数字证书也是由公认的权威机构颁发的,而且这些机构会给自己生成一个数字证书,这些机构的数字证书被预制安装在操作系统中被用来对其他服务器发来的证书进行认证;
- 购买这些机构发行的数字证书价格不菲,我们能否自己私建证书对自己内部的主机进行认证呢?能!
私建数字证书
- 需要一台管理证书的服务器,比如我有一台centos7服务器;
[ ] .
------. .
[root@mylinux7 ~]
total 24
drwxr-xr-x. 2 root root 4096 Mar 5 2015 certs
drwxr-xr-x. 2 root root 4096 Mar 5 2015 crl
-rw-r--r--. 1 root root 3 Jan 4 18:49 crlnumber
-rw-r--r--. 1 root root 0 Jan 4 18:47 index.txt
drwxr-xr-x. 2 root root 4096 Mar 5 2015 newcerts
drwx------. 2 root root 4096 Mar 5 2015 private