mkcert 是一个简单的工具,旨在为开发者生成本地的 TLS/SSL 证书,从而能够在开发过程中使用 HTTPS 协议进行安全通信。它是一个开源工具,主要用于在开发和测试环境中创建受信任的本地证书。
一、mkcert主要特点
(1) 简化证书生成过程:
mkcert 自动化了生成本地受信任证书的过程,开发者无需手动创建证书、配置信任链或处理浏览器的安全警告,极大地简化了开发流程。
(2) 兼容性好:
支持多种操作系统(包括 macOS、Linux 和 Windows)。对于跨平台开发,mkcert 提供了非常一致的用户体验。
(3) 快速生成本地证书:
mkcert 能够在短时间内为多个域名生成证书,支持通配符和多个域名以及IP(如 localhost、example.com 、 *.example.com、127.0.0.1 等),非常适合开发和测试环境使用。
(4) 开源免费:
mkcert 是开源项目,完全免费使用。你可以随意下载和使用它来生成本地证书。
二、安装和使用
以Windows系统为例,下载链接https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-windows-amd64.exe
1. 下载后执行安装命令
mkcert.exe -install
执行安装命令后,出现安装CA证书的弹窗,点击是继续。
命令执行成功,显示创建了本地CA证书:
执行命令查询根证书文件路径:
C:\tools>mkcert.exe -CAROOT
C:\Users\Administrator\AppData\Local\mkcert
进入C:\Users\Administrator\AppData\Local\mkcert路径查看根证书和私钥文件:
执行certmgr命令:
C:\tools>certmgr
在弹出的窗口中找到mkcert的根证书,可双击打开查看根证书的相关信息:
2. 执行以下命令来为一个或多个域名以及IP生成证书:
C:\tools>mkcert.exe example.com "*.example.com" localhost 127.0.0.1
命令执行成功后在当前路径下生成了域名证书文件 example.com+3.pem 和私钥文件 example.com+3-key.pem
三、证书配置及验证
通过简单配置nginx来验证https的状态:
listen 443 ssl;
server_name localhost;
ssl_certificate C:/tools/example.com+3.pem;
ssl_certificate_key C:/tools/example.com+3-key.pem;
#其他配置....
打开浏览器访问https://localhost正常显示,没有提示安全警告,说明证书已经生效。
查看证书基本信息,显示有效期为 500 年,可以说是永久使用了
除了使用域名访问还可以使用IP地址访问,如 https://127.0.0.1。
总结
mkcert 是一个为本地开发创建和管理受信任证书的简便工具,避免了手动管理和信任问题。它特别适用于需要在开发环境中使用 HTTPS 的开发者,简化了证书生成和配置过程,使得开发和测试变得更加高效和安全。