通常在本地开发环境,要想使用tls/ssl环境,除了之前文章说的使用openssl命令生成,还有更简单的方式创建证书,下面介绍mkcert工具,它能够创建在本地开发环境中由操作系统和浏览器信任的tls证书。
一、mkcert的特点
- 适合本地开发环境、内网环境使用
- 安装时自动加入系统证书信任链
- 支持多域名SAN(Subject Alternative Names)
- 支持生成客户端证书,可用于mTLS双向认证
二、安装
1 | brew install mkcert |
其它系统:Linux和Windows系统安装
三、生成服务器证书
默认证书会在当前路径生成,下面会生成服务器端(serverAuth)ca.loc.dev.pem(公钥证书)和ca.loc.dev-key.pem(私钥证书)
1 | mkcert ca.loc.dev |
四、生成客户端证书
下面命令显示指定参数**-client**,生成客户端证书(clientAuth)。不需要mTLS则不用生成客户端证书
1 | mkcert -client mqtt_client_1 |
五、证书使用示例
5.1 nginx
1 | server { |
5.2 EMQX双向认证
5.2.1 查看CA根证书
下面命令查看mkcert安装的CA根证书所在目录,一般文件名为rootCA.pem,下面步骤配置双向认证会用到
mkcert -CAROOT
5.2.2 配置emqx监听器
在emqx管理后台,编辑ssl监听器,分别设置服务器公钥证书、服务器私钥证书、CA根证书

5.2.3 使用mqttx测试
mqttx是专门用来调试mqtt服务端的客户端工具,我们在创建连接的配置中,设置客户端证书,配置如下

六、相关链接
- 本文作者: 暮秋人
- 本文链接: https://muqiuren.pages.dev/2024/10/use-mkcert-ca-tool/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!