运维文档
Centos7运维命令
Centos7使用阿里云yum源
Centos7 Yum相关软件在线安装
Windows运维
工具类运维
禅道系统运维
git使用培训
Mysql运维
MySQL 索引
Mysql模拟故障恢复案例过程
使用mysqldump对数据库定时备份脚本
常用Sql
Git常用操作命令
搭建ZSK服务
SVN常用操作命令及维护
Ubuntu相关运维
gitlab安装升级操作
常用统计SQL-治未病
服务人数-活动档案统计
Oracle数据库管理
Windows安装VC2015\VC2017
Idea离线开发的Maven设置
慢病治未病部署步骤
Centos7升级openssh+openssl
Centos7 ISO文件做本地yum源
使用mkcert生成自签名证书
OpenEuler
openEuler运维命令
OpenEuler22.03源码编译安装Nginx
OpenEuler安装docker
Docker
Centos7在线搭建docker的elasticsearch环境(单节点)
Docker搭建Hadoop环境
Docker搭建Hadoop环境(新)
Docker维护命令
Docker启动minIO
常用工具或软件的Docker启动命令
Word中查找和替换通配符用法介绍(完全版)
PostgreSql安装与配置
安装Debian10系统
量表扩展信息字段说明
Debian在线安装软件以及修改源
windows本地连接openclaw的UI界面
本文档使用 MrDoc 发布
-
+
首页
使用mkcert生成自签名证书
# 使用mkcert生成自签名证书 ## 生成证书 ### 原工具生成证书 原工具是指github上开源项目的工具来生成证书,工具可以生成一个2年3个月的证书文件。 github地址:[https://github.com/FiloSottile/mkcert](https://github.com/FiloSottile/mkcert) 可以下载windows、Linux等平台,最新代码更新到2022年4月份。 #### 生成证书 下载后,直接使用`-install`参数可以生成根证书文件。 > windows下 ``` mkcert-v1.4.4-windows-amd64.exe -install ``` > linux下 ``` ./mkcert-v1.4.4-linux-amd64 -install ``` 工具会生成2个文件`*.key.pem`和`*.pem`。其中`*.key.pem`为私钥文件。 2个文件可以发给局域网内用户进行安装。 > 注意:只有这个文件安装了才能验证有效,如果仅安装自己域名或IP的证书,仍然会报不安全。 #### 查看证书文件 通过以下命令,可以查看证书文件生成的位置: > windows下 ``` mkcert-v1.4.4-windows-amd64.exe -CAROOT ``` > linux下 ``` ./mkcert-v1.4.4-linux-amd64 -CAROOT ``` #### 生成自己的域名或IP证书 > windows下 ``` mkcert-v1.4.4-windows-amd64.exe mbzwb.citaiehealth.com domain1 domain2 ip1 ip2 ip3 ``` > linux下 ``` ./mkcert-v1.4.4-linux-amd64 domain1 domain2 ip1 ip2 ip3 ``` 会在工具所在目录下生成2个文件 ### 修改后工具生成证书 参考:[使用mkcert签发自定义有效期的证书](https://www.cnblogs.com/mrcoolfuyu/p/18721121) 修改后工具是指Mrcool作者基于xzxiaoshan的修改后的修改版本,使用源码自行编译出来的工具。 xzxiaoshan:[https://github.com/xzxiaoshan/mkcert](https://github.com/xzxiaoshan/mkcert) Mrcool:[https://gitee.com/mr_cool/mkcert](https://gitee.com/mr_cool/mkcert) Mrcool作者仅发布了windows下的编译工具。 Linux下的工具(或windows)可以下载源码自行编译生成。 修改说明:[使用mkcert签发自定义有效期的证书](https://www.cnblogs.com/mrcoolfuyu/p/18721121) > 原版mkcert签发的证书有效期是825天,也就是2年多。我都自行签发证书了,肯定还是希望签发的证书有效期能够自定义。不过原本的mkcert并不提供自定义有效期的功能。 因此[xzxiaoshan](https://github.com/xzxiaoshan/mkcert)在mkcert的基础上做了修改,增加了重命名CA、重命名证书、自定义证书有效期的功能。不过有点bug。 我在其基础上修改了bug,增加了使用说明,供有需要的人使用。 首先从[https://gitee.com/mr_cool/mkcert](https://gitee.com/mr_cool/mkcert)自行下载编译mkcert。如果使用的是windows,也可以直接使用我编译好的版本:[点此下载](https://gitee.com/mr_cool/mkcert/releases/download/1.1/mkcert.exe)。 <b>安装自定义CA</b> ```mkcert -install -ca-org="Your ca-org" -ca-orgUnit="Your ca-orgUnit" -ca-commonName="Your ca-commonName" -ca-years="15"``` 如果你没有自定义CA名称的需求,可以不带后面的参数,直接`mkcert -install`即可。默认的CA有效期为10年。 需要注意的是:在Windows下使用`mkcert -install`安装的CA是为当前用户安装的CA,而不是当前计算机。有需要为当前计算机安装的话,则需要自行使用`certlm.msc`导入到受信任的根证书颁发机构中去。 如果你以前使用mkcert生成过CA文件,本次希望重新生成。那么你需要先使用`mkcert -CAROOT`查看原来的CA文件位置(默认是在`%LOCALAPPDATA%\mkcert`路径下)。将原来的CA文件删除后再重新生成。 <b>生成自定义证书</b> ```mkcert -cert-org="XXX" -cert-orgUnit="XXX" -cert-commonName="XXX" -cert-days="3650" 192.168.50.X``` 如果你没有自定义证书名称及有效期的需求,可以不带后面的参数,默认的证书有效期是825天。 最后的效果如下:  mkcert的其他用法请参见[mkcert](https://github.com/FiloSottile/mkcert)。 #### 生成根证书 下载后,直接使用`-install`参数可以生成根证书文件。 > windows下 ``` mkcert.exe -install ``` > linux下 ``` ./mkcert -install ``` 工具会`~/.local/share/mkcert`下生成2个文件`rootCA.key.pem`和`rootCA.pem`。其中`rootCA.key.pem`为私钥文件。 2个文件可以发给局域网内用户进行安装。 #### 指定CA名称和有效期 默认证书生成10年有效期,如果想要修改,可以通过给定参数进行修改生成。 > windows下 ``` mkcert.exe -install ``` > linux下 ``` ./mkcert -install ``` #### 生成域名/IP证书 > windows下 ``` mkcert.exe domain1 domain2 ip1 ip2 ``` > linux下 ``` ./mkcert domain1 domain2 ip1 ip2 ``` 工具会生成2个文件`domain1.key.pem`和`*.pem`。其中`domain1.key.pem`为私钥文件。 #### 扩展的参数 参考:[使用 mkcert 工具自签发 https 证书并进行本地受信](https://blog.csdn.net/catoop/article/details/144426294) * ca-org * ca-orgUnit * ca-commonName * ca-years * cert-org * cert-orgUnit * cert-commonName * cert-days 编译和使用使用示例: ``` # 1.电脑下载并按照golang运行环境 # 2.下载代码 https://github.com/xzxiaoshan/mkcert # 3.使用PowerShell编译(以Windows为例)版本号随便 go build -ldflags "-X main.Version=1.4.4.1" # 4.执行编译后生成的exe文件生成和安装CA根证书 mkcert.exe -install -ca-org="Shanhy CA" -ca-orgUnit="Shanhy" -ca-commonName="Shanhy Root CA 2024" # 创建cert证书的自定义参数同理 #(略) ``` 如下图所示:  ## windows下导入根证书 如果想在局域网内认证自签名证书,需要在局域网电脑内导入mkcert生成的根证书。 ### 获取根证书 从生成证书的电脑上,复制或下载CAROOT.pem文件到需要导入的电脑上。 ### 导入根证书 将CAROOT.pem文件修改为为CAROOT.crt。 windows或某个linux服务器不能识别pem证书文件,需要将文件名修改一下。 >windows导入 ``` 手动操作 ``` >centos导入 ``` cp ca.crt /etc/pki/ca-trust/source/anchors update-ca-trust ``` >Ubuntu ``` sudo cp ca.crt /usr/local/share/ca-certificates sudo update-ca-certificates ``` >Alpine ``` cp ca.crt /usr/local/share/ca-certificates;sudo update-ca-certificates ``` ## 编译mkcert工具 ### 安装go运行环境 默认yum安装go环境会提示找不到包,可以使用官方编译文件进行安装。 打开go下载地址: 官网: https://go.dev/dl/ 国内镜像站: https://golang.google.cn/dl/  以1.24.3版本为例: #### windows 1. 下载:https://go.dev/dl/go1.24.3.windows-amd64.msi 2. 下载的msi文件到本地,双击运行msi文件,完成安装即可。 3. 查看版本号 打开cmd,输入以下命令 ``` go version ``` 这就安装完成了。 #### Linux 1. 下载:https://go.dev/dl/go1.24.3.linux-amd64.tar.gz 2. 下载的tar.gz文件到本地,使用命令解压 ```shell wget https://dl.google.com/go/go1.21.10.linux-amd64.tar.gz tar -zxf go1.22.3.linux-amd64.tar.gz -C /usr/local ``` 3. 添加环境变量 ``` vim /etc/profile ``` 在最后追加 ``` #go 环境变量 export GO111MODULE=on export GOROOT=/usr/local/go export GOPATH=/root/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin ``` 执行 ``` source /etc/profile ``` 4. 查看版本 ``` go version ``` 这就安装完成了。 ### 添加代理 执行go编译,会下载一些依赖的库,由于网络原因,可能一些库无法下载,需要使用代理。 如果版本为 1.13 及以上 ``` go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct ``` 低于 1.13 版本 ``` $env:GO111MODULE="on" $env:GOPROXY="https://goproxy.io" ``` ### 执行编译命令 在项目根目录下,执行 ``` go build or go build main.go ``` 或者加上-o参数指定一下输出文件名。 ``` go build -o mkcert or go build -o mkcert main.go ``` 如果需要跨平台编译: ``` GOOS=linux GOARCH=amd64 go build -o hello main.go ``` 其中: > GOOS=linux:目标操作系统为 Linux > GOARCH=amd64:目标架构为 64 位 #### 编译选项 > -o <filename>:指定输出文件的名称。 -v:输出详细的编译信息。 -a:强制重新编译所有包。 -ldflags:设置编译时的链接器参数。 示例: ``` go build -o hello -v -ldflags "-s -w" main.go ``` 参数解释: > -s:去掉符号表信息。 > -w:去掉 DWARF 调试信息。 ``` mkcert -install -ca-org="Citai" -ca-orgUnit="zwb" -ca-commonName="Citai eHealth 2025" -ca-years="15" mkcert -cert-org="TSZYY" -cert-orgUnit="zwb" -cert-commonName="Taishan Traditional Chinese Medicine Hospital 2025" -cert-days="3650" zwb.com *.citai.com *.citaiehealth.com 192.168.0.231 192.168.0.232 192.168.0.233 192.168.0.234 ```
张文海
2025年6月22日 16:46
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码