这个草稿马上就要半年了,再不整理,可能就要长毛了。
写这个脚本是因为在实验室安装云平台和虚拟设备,需要证书,就使用openssl自建CA并签发证书了,命令虽然几行,但是输入参数和经常需要来回签发证书也是一件麻烦的事情。
而且在使用的时候经常碰到证书Seria一样的问题,原因是同一个CA签发了多个证书没有考虑Serial冲突的问题。
这个脚本就在此情景下应运而生,整合了openssl制作CA和签发证书的过程,并且使用RANDOM变量来设置证书的Serial。
脚本的输入是一个非常标准的配置文件,包括两个部分,一个是CA信息,一个是证书信息。
两部分都是由Common Name和Subject构成,其中Subject遵循openssl需要创建CSR所需要的标准参数格式。
配置文件详情如下:
配置文件准备好之后就可以直接运行脚本制作CA机构并签发证书了,也支持使用已经创好的CA签发证书,帮助如下:
脚本输出不仅仅有签发的证书,也会打印出相应的verify的命令,打印这个是因为之前做证书verify的时候经常忘记参数,所以就直接写到脚本输入里了。
脚本做了很多的容错,比如配置文件缺失,配置文件格式有问题,使用已经制作好的CA签发证书的时候要确认CA的证书和私钥匹配。
这个脚本不仅仅可以快速制作CA并签发证书,同时脚本内容也不复杂,可以顺便熟悉openssl命令和签发证书的流程。
脚本、使用介绍和证书样例已经同步到Github。
PS:这个Repository的README中超链了一篇介绍数字签名的古老博客(已经十几年之久),但是对于理解证书、数字签名等等非常之浅显易懂