为了解决有些时候需要签发长时效证书,但又不想花钱。所以准备自己搞一个CA自签发证书。分享一下搭建过程。
这种方式适合于个人或企业内部私有使用,不适合公共对外使用,因为涉及安装CA根证书,对普通用户不太友好且繁琐。
服务器操作系统的安装配置这里就不赘述了,和安装一般的Windows差不多。文中所说的都是比较傻瓜的操作,如果有自定义需求,欢迎留言讨论。登录操作系统后,打开“服务器管理器”-“添加角色和功能”,出现如下界面,然后下一步:
如果在当前主机上安装,则保持默认,乖乖下一步。我这里是在当前主机安装,至于远程安装自己摸索一下吧,查不太多。
选择服务器环节,基本都是保持默认,然后下一步。
在下图界面中,勾选红框内的选项。
此时系统会弹出提示,需要安装一些必要组件,乖乖听话添加功能即可。
功能安装界面,没有什么特别需要安装的功能,直接下一步即可。
下面将开始对CA进行安装前的配置,如下图:
为了方便证书的申请,我需要增加web申请页面,所以需要将下图红框中的选项勾选。
此时操作系统提示需要添加一些必要的功能,保持默认添加相关的功能即可。
因为添加了Web申请证书的功能,所以需要配置IIS服务器,下面开始IIS安装配置。
保持默认选项,直接下一步即可。除非你有特殊需求或者很清楚自己在干什么,否则不要修改安装选项。
安装前的确认,可以勾选自动重启服务器的选项。
然后就开始了安装过程,等待出现下图界面,点击红框里的内容准备开始安装后的配置。
凭据界面保持默认,直接下一步。
角色服务中将下图红框中的选项一并勾选。
因为我们当前没有AD环境,所以这里只能默认选择独立CA。
因为这是我们当前搭建的第一个CA服务器,所以选择第一个选项“根CA”。
又因为是首次创建CA,自然没有私钥,所以下图的界面中也选择第一个选项。
加密方式根据自己需求选择,不知道选啥的就乖乖的保持默认,点击下一步即可。
公共名称可以根据自己的需求修改,我这里就保持默认了。默认规则就是主机名+“-CA”组成。
选择一下你需要的CA根证书的有效期,建议选长的。
证书数据库的保存位置,没有特殊需求的就保持默认吧。
确认配置信息,确认无误后点击“配置”按钮开始配置进程。
出现下面的界面则表示配置完成了。
这时可以使用浏览器访问下图中的地址来申请证书了。但是下图中明显发生了403错误。这个问题现在只在Windows Server 2025上遇到过。
我当时天真的认为通过https方式访问就没问题了。结果就是下图的样子。
导致这个问题的原因是,Windows Server 2025要求访问这个页面时使用https,但是系统默认的配置中并没有在IIS服务器上绑定https。以前的版本没有遇到这个问题,以前都是http直接访问的。现在的巨硬操作系统真是一言难尽啊。
解决方案如下,首先进入IIS管理器,然后按照红框编号依次操作。
点击“添加”按钮,如下图。
进行如下图中的配置,证书那选自己的CA证书,别找着我的来,那样永远也找不到。
添加后的信息如下图。
然后再使用https登录certsrv页面就正常了。
下面开始申请证书操作,首先找一个要申请证书的服务器,或者随便找个Linux主机都行。执行下面的语句生成私钥。密钥加密长度随自己,不用非得2048,当然越长越好。
执行如下图中的命令,使用私钥生成证书申请文件,之后需要填写国家、省份、组织名称等信息。重点是红框里的内容。这里就是你的域名,我图中的写法称为泛域名,也就是只要是test.web能在域名里匹配到,不管域名前面是www还是test等其他的,就能使用这个证书加密信息。当然你也可以写单一域名。
打开并复制证书申请文件的全部内容。
打开证书申请页面,点击“申请证书”。
点击“高级证书申请”。
将刚刚复制出来的证书申请文件内容贴到文本框里,下面的属性框里可以用来设置证书有效期等参数。
将如下的参数填写到参数框,你将申请一个有效期为3年的证书。
ValidityPeriod: Years
ValidityPeriodUnits: 3
但是这里在Windows Server 2025又会遇到问题,就是会提示你有效期太长了,不能申请这么长的有效期。可以通过证书模板修改。但是坑爹的是非AD环境中没有证书模板。Windows Server 2025之前的版本没有这个问题,加参数直接可以申请。这里不自觉的又想吐槽一下巨硬。
提交申请后会有下图这样的一个反馈页面。
在服务器管理工具中打开证书管理工具,然后在“挂起的申请”中可以看到刚刚提交的证书申请。
选择对应的证书,右键“颁发”,然后在“颁发的证书”中可以看到相应的证书,在这里也可以进行吊销证书等操作。
此时再次登录certsrv页面,点击下图中红框中选项来查看证书申请。
证书颁发后会显示下图的界面。
点击证书链接后就可以下载证书了,需要啥格式,自己选择。
到这里实际文章已经写完了。但是我觉得都已经写了这么多了,那就再多说两句。因为是自签发证书,所以必须在需要使用证书的主机上安装CA根证书后才能有效的使用自签发证书。
还是进入certsrv页面,点击下图红框中的选项。
然后在页面中选择对应的CA证书、编码格式,然后下载CA证书。
之后就是安装证书,Windows下双击证书,然后安装证书,选择将证书保存到“受信任的证书颁发机构”,即可完成CA证书安装。
Linux下安装证书的方式我只列举Debian的方式,CentOS系的操作系统我不怎么使,没法做验证,所以这里不写了,需要的可以自行搜索或者问问AI。
使用root执行下面的命令即可在Debian安装CA证书。
mv ca.crt /usr/local/share/ca-certificates/
update-ca-certificates