首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux|一个生成自签名证书的小脚本

作为一个业余型码农,代码写过最多的时候应该就是在大学了,不管是C语言的学习,还是J2EE的专业课,以及自己最熟悉的.NET,因为专业课程的设计、毕设和指导毕设等原因,都写了不少。

毕业后从事了通信运维,开始大量使用Linux系统,从PNF到VNF再到CNF(Container based的VNF),越来越多的开始使用shell和python写一些辅助运维的脚本,也是颇有益处。

写这个生成自签名证书脚本是因为安装Openstack系列产品或者某些CNF产品需要申请证书,在自我学习或者实验室中经常需要基于openssl做自签名证书。

命令不是很多也不是很复杂,但是每次都需要来回准备和运行那几行命令,也颇有浪费生命之感,另外自己在做自签名证书的时候有一些参数值设定不好导致使用中遇到杂七杂八的问题,比如serial这个参数,之前没用注意或者每次设定成一样,导致访问对应的网页会遇到如下问题。

在自签名中的解决方案选择了使用随机数来给serial赋值,目前再也没有遇到上述问题。

这个脚本的思路是通过一个配置文件来传递证书需要的Subject信息比如Country、Location、Common Name等信息,然后给Client签发证书,证书时间是100年。

这个脚本主要有四个参数,其中-h是optional查询帮助参数。

另外三个分别是必须参数-c来传递Subject配置文件,然后是-ca和-key参数用来传递一个已经存在的CA机构的证书和私钥。

上述三个参数搭配完成了自签名任务。

一是只使用-c参数,其中配置文件需要包括Root CA和Client的Subject,先创建Root CA机构,然后给Client签发证书。

二是一起使用-c、-ca、-key参数来完成基于已有的Root CA的证书和私钥直接给Client签发证书,从而保证一套lab环境中使用统一的自签名CA机构。

容错功能已经把大部分可以想到或者运行时遇到的问题都进行了判断并做出提示,比如基于已有的CA签发证书,那么提供的文件是否是证书或者私钥,证书和私钥是否匹配等等问题都做了容错规避。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210927A0CLM900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券