下面来说说如何自己制作根CA证书以及服务器证书和客户端证书:
客户端安装服务器根证书ca.crt到客户端信任证书库中,服务器端安装服务器根证书ca.crt到服务器信任证书库中。
SSL握手时,服务器先将服务器证书server.p12发给客户端,客户端会到客户端信任证书库中进行验证,
因为server.p12是根证书CA颁发的,所以验证通过;然后客户端将客户端证书client.p12发给服务器,同理因为client.p12是根证书CA颁发的,所以验证通过。
先下载安装xca工具,地址是http://xca.hohnstaedt.de/
先用xca创建一本ca证书
xca打开的界面
依次File, New DataBase,选择xdb文件保存路径,再输入密码
切换到Certificates页面,点击New Certificate
出现如下界面
因为要创建根证书,这里选择序号为1的自认证证书,签名算法选择SHA 256,证书模版选择默认CA,再点击Apply all(这个不能漏)如下所示:
再切到Subject页面,填好各个字段,都可以随便填
再点击Generate a new key生产私钥
最后点击OK,CA证书做好了,有效期默认10年
将根证书导出成只包含公钥的证书格式,这本根证书就是放在网站上供用户下载安装,或主动安装到客户机器中的:
制作服务器证书、客户端证书和制作CA证书差不多,只有两个地方不一样:
- 选择已经制作好的根CA,然后点击New Certificate签名时,选择使用根证书,这里是hangzhou进行签名颁发,然后证书模版选择服务器(制作客户端证书就选择HTTPS_client),其他都和制作根证书一样,然后点击Apply all(这个一定不能忘),然后再切到Subject、Extension页面填写相应的东西就OK了制作完成:然后再将服务器证书导出来,选择p12格式同理制作客户端证书,并将之导出,也是p12格式的证书,包含私钥