mkcert自签SSL证书

mkcert自签SSL证书
LuckyTigermkcert
简介
mkcert是一个用于生成本地自签名SSL证书的开源工具。它基于Golang开发,可以跨平台使用,不需要进行复杂配置,且能自动信任CA。此外,mkcert支持单域名、多域名以及IP,为开发者提供了极大的便利。 请注意,mkcert生成的证书主要用于本地开发和测试环境,不适合在生产环境中使用。在生产环境中,应使用由受信任的证书颁发机构(CA)签发的证书,以确保安全性和用户信任。
下载
这个是官网的地址: Releases · FiloSottile/mkcert (github.com)
Windows版本选择
1 | echo %PROCESSOR_ARCHITECTURE% |
Linux版本选择
1 | lscpu | grep Architecture |
如果输出结果中包含 x86_64
或 i686
,则表示系统的 CPU 架构是 AMD
(或者是 x86 架构的 Intel
CPU)。如果输出结果中包含 armv7l
、aarch64
或 arm64
,则表示系统的 CPU 架构是 ARM
。
安装
Windows安装
管理员运行CMD,install安装
使用管理员模式运行cmd,进入安装文件目录执行以下安装命令安装mkcert。将CA证书加入本地可信CA,使用此命令,就能帮助我们将mkcert使用的根证书加入了本地可信CA中,以后由该CA签发的证书在本地都是可信的,弹出的安全警告点击是。
1 | cd c:\mkcert |
安装成功成功。提示创建一个新的本地CA,本地CA现在已安装在系统信任存储中。
测试mkcert是否安装成功
1 | mkcert-v1.4.4-windows-amd64.exe --help |
查看CA证书存放位置
1 | mkcert-v1.4.4-windows-amd64.exe --CAROOT |
查看证书控制台
按“Windows键+R”调出运行框,输入certmgr.msc命令。打开证书控制台。
生成自签证书,可供局域网内使用其他主机访问
直接跟多个要签发的域名或 ip 就行了,比如签发一个仅本机访问的证书(可以通过127.0.0.1
和localhost
,以及 ipv6 地址::1
访问)
需要在局域网内测试 https 应用,这种环境可能不对外,因此也无法使用像Let's encrypt
这种免费证书的方案给局域网签发一个可信的证书,而且Let's encrypt
本身也不支持认证 Ip。
证书可信的三个要素:
- 由可信的 CA 机构签发
- 访问的地址跟证书认证地址相符
- 证书在有效期内
如果期望自签证书在局域网内使用,以上三个条件都需要满足。很明显自签证书一定可以满足证书在有效期内,那么需要保证后两条。我们签发的证书必须匹配浏览器的地址栏,比如局域网的 ip 或者域名,此外还需要信任 CA。操作如下。 签发证书,加入局域网IP地址。
1 | mkcert-v1.4.4-windows-amd64.exe localhost 127.0.0.1 ::1 192.168.109.129 |
Nginx测试
下载Nginx
到nginx官网( nginx: download)下载nginx
解压安装包,并放置证书文件
下载成功后,将下载的zip包,根据自己的情况,放到对应的目录下,解压。(这里有一点值得注意的是,nginx最好放在非中文目录下,在nginx-1.24.0版本之前,nginx放在有中文的目录下,时无法启动nginx的)。创建一个ssl文件夹将刚才生成的ssl文件放到里面。
修改conf文件
编辑bin目录下nginx.conf文件,配置ssl,这里用443端口代理html下的静态文件
1 |
|
双击启动
浏览器访问
局域网其他设备访问
将CA证书复制给需要访问的局域网设备,安装后就可以通过https://192.168.109.129:443 安全访问了
PC安装
将 rootCA.pem 复制到 PC 上,并将其后缀改为 .crt
双击 rootCA.crt
,根据提示安装证书即可(注意证书存储时要点击浏览选择受信任的根证书颁发机构)。
安卓安装
这里以小米14为例
打开设置选择 隐私与安全
安全选项卡中选择更多安全设置
更多安全设置页面下滑到最底层 选择 更多安全设置 加密、凭证等
加密与凭证中选择从存储设备安装证书
安装证书中选择CA证书
选择仍然按照
选择刚才生成的rootCA.pem
安装成功
Linux安装
赋权,install安装
将对应版本的mkcer复制到服务器上,这里我创建了/home/mkcert进行操作,复制后给文件进行赋权再安装
1 | mkdir /home/mkcert |
测试mkcert是否安装成功
1 | ./mkcert-v1.4.3-linux-amd64 --help |
查看CA证书存放位置
1 | ./mkcert-v1.4.3-linux-amd64 --CAROOT |
生成自签证书,可供局域网内使用其他主机访问
1 | ./mkcert-v1.4.3-linux-amd64 localhost 127.0.0.1 ::1 192.168.109.130 |
Nginx测试
安装
放置证书文件
1 | mkdir /home/nginx/ssl |
启动脚本
1 | docker run \ |
修改conf文件
1 | server { |
浏览器访问
局域网其他设备访问
将CA证书复制给需要访问的局域网设备,安装后就可以通过https://192.168.109.130:8991 安全访问了,具体参考 PC安装 安卓安装