在局域网或者本机开发https的web项目时一般会用到ssl证书,而一般生成的自签名证书就已经能够满足需求了,只是会经常需要手动信任,略显麻烦,而且如果是在局域网内给多人提供一个https的服务,本篇教程将让整个事情变得优雅。

1、环境和目标

前提知识:你需要自己去了解怎么在服务端使用证书。 本篇只讨论怎么创建本机CA,至于生成的证书怎么配置在服务端不在本篇讨论范围内。
目标:能够搭建本机CA,并搭建出能够给多人使用的证书环境(其他的机子上也是需要安装软件的)。
工具mkcert,github 的 start 数 25.8k。官方文档开篇介绍如下,可见操作将相当简单。

mkcert is a simple tool for making locally-trusted development certificates. It requires no configuration.
mkcert是一个制作本地可信开发证书的简单工具。它不需要配置

环境:windows ,其他环境可以根据官方文档自行操作
流程
仅本机使用:安装软件,然后生成证书,把证书配置到服务端即可(本机的CA和服务端证书作为一套使用)
大家一起用:在前面的基础上,将本机的CA的根证书共享给大家,大家一起装就可以了
结果在这里插入图片描述

2、下载

在项目的版本页面选择最新版本中的windows 安装包,下载下来就是一个 exe 程序。
在这里插入图片描述

3、安装

解压获取到exe文件,然后在当前目录打开cmd,执行以下命令安装,一定要根据自己下载的文件名执行。执行结束后会显示安装在了system trust store。重启依然生效。

文件名 -install

例如,我的是
mkcert-v1.4.1-windows-amd64.exe -install

在这里插入图片描述
卸载:有安装就得有卸载,如果不需要CA了就执行以下命令,

文件名 -uninstall

例如,我的是
mkcert-v1.4.1-windows-amd64.exe -uninstall

4、生成ssl证书

安装完毕后,依然在当前目录执行以下命令,其中ip为服务端ip(ip可以同时生成多个)。在当前目录将生成两个文件,证书文件.pem 和 证书key文件 -key.pem,这两个文件配置到服务端即可,如果需要转格式可以网上查找,一般我是配置到nginx不需要转换。
如果是自己单机使用就已经结束了。

文件名 服务端ip

例如,我的是
mkcert-v1.4.1-windows-amd64.exe 192.168.x.x

在这里插入图片描述

5、准备文件 — 共享给多人使用

首先取出自己的根证书。执行以下命令查看根证书位置,打开地址后能看到两个文件 rootCA.pem 和 rootCA-key.pem ,将 rootCA.pem 取出即可。把 rootCA.pem 和 mkcert 的exe一起打包发给大家即可。

文件名 -CAROOT

例如,我的是
mkcert-v1.4.1-windows-amd64.exe -CAROOT

在这里插入图片描述
打包文件

6、编写批处理

其实手动设置也行,只是发给多人使用,得便捷才好。在其他机子上主要做的事情是要先把 rootCA.pem 路径设置为环境变量,然后安装 mkcert 工具,我把这两个合并一起写了个批处理文件 installAll.bat。文件名字必须要改成自己的
ps:新建一个txt,写入以下命令,然后改后缀为 .bat

@echo off
set p=%~dp0
SETX CAROOT %p% && mkcert-v1.4.1-windows-amd64.exe -install
pause

为了方便,卸载的命令也写成批处理 uninstall.bat,注意命令中文件名

mkcert-v1.4.1-windows-amd64.exe -uninstall

在这里插入图片描述

7、其他机子安装

拿到分享的文件夹后,首先需要将当前文件夹放置到一个不会干扰使用者的地方(主要是别以后被机主删掉了或者移动了,毕竟我们把当前文件夹路径配置到环境变量了,要是找不到当前路径一切白搭)。
然后双击 installAll.bat,齐活收工。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐