局域网内多台机器使用自签发证书架设https网站一:原理

658 阅读2分钟

关键词:

数字证书
自签发数字证书
根证书
网站证书
makecert.exe
itisscg.exe

这个证书真麻烦啊,搞死了。不过,弄清楚以后,回头看,也不是那么难理解。

我先来梳理一下:

https总是与数字证书联系在一起。所谓的https,就是采用了SSL协议的http。SSL协议负责加密通信,采用对称加密。但采用哪种加密方法,密钥如何,并不是固定的,而是在客户端与服务器建立连接之初协商产生的。这个协商步骤,采用了非对称加密。非对称加密,就牵扯到公钥私钥。私钥自己保管,公钥呢?客户端与服务器如何能保证收到的公钥就是对方提供的?这里就要用到数字证书了。数字证书,负责身份验证,公钥就放在数字证书里。(其中原理,可见拙作《HTTPS》

然而新的问题又来了。谁来保证数字证书的真伪?答案是权威机构,由他们签发的数字证书有权威性。但权威机构颁发的证书需要购买,好像还很贵,我们在开发阶段,或者局域网内,采用自签发证书即可。

自签发证书怎么用呢?步骤是这样的:

1以一台机器作为根证书服务器(其实就是CA),负责生成根证书

2所有网站的证书,都用这张根证书来签发

3客户端导入这张根证书到自己的“受信任的根证书颁发机构”里

为什么网站用自签发证书,客户端还要导入根证书呢?你看我们访问互联网上的一些著名站点,都是https,但我们啥证书都不用,就能很顺畅的打开。这是因为,大网站都采用了权威机构颁发的证书,浏览器内置了一份权威机构名单,所以无须我们多做些什么。而自签发证书的话,没有权威性,浏览器不认,所以需要手动将根证书安装到浏览器所在机器上的“受信任的根证书颁发机构”里。由于网站证书就是由这份根证书签发的,这样浏览器才会认可、信任网站,访问得以顺利进行。
这里写图片描述

下一篇文章,具体说说如何制作根证书和签发证书

我学习这个证书也有一些历史了,列一下

局域网内多台机器使用自签发证书架设https网站二:实施

局域网内多台机器使用自签发证书架设https网站一:原理

https的证书

HTTPS

数字签名与数字证书

证书生成、应用及常见错误处理