使用mkcert工具生成受信任的SSL证书,解决局域网本地https访问问题(上)

简介: 使用mkcert工具生成受信任的SSL证书,解决局域网本地https访问问题

1、mkcert简介

mkcert 是一个简单的工具,用于制作本地信任的开发证书。它不需要配置。

简化我们在本地搭建 https 环境的复杂性,无需操作繁杂的 openssl 实现自签证书了,这个小程序就可以帮助我们自签证书,在本机使用还会自动信任 CA,非常方便。

使用来自真实证书颁发机构 (CA) 的证书进行开发可能很危险或不可能(对于example.test、localhost或 之类的主机127.0.0.1),但自签名证书会导致信任错误。管理您自己的 CA 是最好的解决方案,但通常涉及神秘的命令、专业知识和手动步骤。

mkcert 在系统根存储中自动创建并安装本地 CA,并生成本地信任的证书。mkcert 不会自动配置服务器以使用证书,但这取决于您。


2、mkcert下载

  • 本实验使用Windows 10 操作系统进行演示说明。mkcert也支持其他噶平台的安装与使用,自行下载对应的版本安装即可。

813a4f38b413b5a5ab4b3957de4813b6.png


3、mkcert安装配置

(1)输入CMD,调出命令提示符

3f7f0d7b96688572ab15c3f344c49dc0.png

(2)初次安装mkcert

输入mkcert-v1.4.3-windows-amd64.exe -install 命令 ,安装mkcert。将CA证书加入本地可信CA,使用此命令,就能帮助我们将mkcert使用的根证书加入了本地可信CA中,以后由该CA签发的证书在本地都是可信的。卸载命令 mkcert-v1.4.3-windows-amd64.exe -install

23d67b71988a498c9b5708de75833ad0.png

安装成功成功。提示创建一个新的本地CA,本地CA现在已安装在系统信任存储中。

288166969bf777195b9c74c27388a526.png


(3)测试mkcert是否安装成功

C:\>mkcert-v1.4.3-windows-amd64.exe --help
Usage of mkcert:
        $ mkcert -install
        Install the local CA in the system trust store.
        $ mkcert example.org
        Generate "example.org.pem" and "example.org-key.pem".
        $ mkcert example.com myapp.dev localhost 127.0.0.1 ::1
        Generate "example.com+4.pem" and "example.com+4-key.pem".
        $ mkcert "*.example.it"
        Generate "_wildcard.example.it.pem" and "_wildcard.example.it-key.pem".
        $ mkcert -uninstall
        Uninstall the local CA (but do not delete it).
Advanced options:
        -cert-file FILE, -key-file FILE, -p12-file FILE
            Customize the output paths.
        -client
            Generate a certificate for client authentication.
        -ecdsa
            Generate a certificate with an ECDSA key.
        -pkcs12
            Generate a ".p12" PKCS #12 file, also know as a ".pfx" file,
            containing certificate and key for legacy applications.
        -csr CSR
            Generate a certificate based on the supplied CSR. Conflicts with
            all other flags and arguments except -install and -cert-file.
        -CAROOT
            Print the CA certificate and key storage location.
        $CAROOT (environment variable)
            Set the CA certificate and key storage location. (This allows
            maintaining multiple local CAs in parallel.)
        $TRUST_STORES (environment variable)
            A comma-separated list of trust stores to install the local
            root CA into. Options are: "system", "java" and "nss" (includes
            Firefox). Autodetected by default.
C:\>

b590cb4bef23e569b327ba72f4df37d1.png


(4)查看CA证书存放位置

输入mkcert-v1.4.3-windows-amd64.exe -CAROOT命令。

3094cb2f4682466d97d270194267a612.png

ae1d62b433107651a04e74086b29e7f9.png按“Windows键+R”调出运行框,输入certmgr.msc命令。打开证书控制台。

34c2e01ef08bd0fa15954ac93d49712a.png

d06ce239ad7450010c9d763895529e38.png

e9e562f6be00dd9660086c833f6af5ae.png


(5)生成自签证书,可供局域网内使用其他主机访问。

直接跟多个要签发的域名或 ip 就行了,比如签发一个仅本机访问的证书(可以通过127.0.0.1localhost,以及 ipv6 地址::1访问)


需要在局域网内测试 https 应用,这种环境可能不对外,因此也无法使用像Let's encrypt这种免费证书的方案给局域网签发一个可信的证书,而且Let's encrypt本身也不支持认证 Ip。


证书可信的三个要素:


由可信的 CA 机构签发

访问的地址跟证书认证地址相符

证书在有效期内

如果期望自签证书在局域网内使用,以上三个条件都需要满足。很明显自签证书一定可以满足证书在有效期内,那么需要保证后两条。我们签发的证书必须匹配浏览器的地址栏,比如局域网的 ip 或者域名,此外还需要信任 CA。操作如下。

签发证书,加入局域网IP地址。

C:\>mkcert-v1.4.3-windows-amd64.exe localhost 127.0.0.1 ::1 192.168.2.25
Note: the local CA is not installed in the Java trust store.
Run "mkcert -install" for certificates to be trusted automatically ⚠️
Created a new certificate valid for the following names 📜
 - "localhost"
 - "127.0.0.1"
 - "::1"
 - "192.168.2.25"
The certificate is at "./localhost+3.pem" and the key at "./localhost+3-key.pem" ✅
It will expire on 13 November 2023 🗓

23dc938136b13e10efcf0269e92055f3.png

在mkcert软件同目录下,生成了自签证书。如图所示。

通过输出,我们可以看到成功生成了localhost+3.pem证书文件和localhost+3-key.pem私钥文件,只要在 web server 上使用这两个文件就可以了。

391f8861cd0131a37d0c099c2bf39495.png

相关文章
|
安全 Ubuntu 应用服务中间件
使用mkcert工具生成受信任的SSL证书,解决局域网本地https访问问题(下)
使用mkcert工具生成受信任的SSL证书,解决局域网本地https访问问题(下)
3655 0
|
Web App开发 网络协议 网络安全
使用mkcert工具生成受信任的本地SSL证书
使用mkcert工具生成受信任的本地SSL证书
1482 0
|
安全 应用服务中间件 网络安全
49.3k star,本地 SSL 证书生成神器,轻松解决 HTTPS 配置痛点
mkcert是一款由Filippo Valsorda开发的免费开源工具,专为生成受信任的本地SSL/TLS证书而设计。它通过简单的命令自动生成并安装本地信任的证书,使本地环境中的HTTPS配置变得轻松无比。mkcert支持多个操作系统,已获得49.2K的GitHub Star,成为开发者首选的本地SSL工具。
1331 10
|
Web App开发 算法 应用服务中间件
nginx开启局域网https访问
【10月更文挑战第22天】为了调试WebRTC功能,需要在局域网内搭建HTTPS协议。具体步骤包括:在已部署Nginx和安装OpenSSL的环境中生成私钥、证书签名请求和自签名证书;将生成的文件放置到Nginx的证书目录并修改Nginx配置文件,最后重启Nginx服务。注意,自签名证书不受第三方机构认可,如需正式使用,需向CA申请签名。
1474 2
|
安全 网络安全 数据安全/隐私保护
内网/局域网IP地址申请https证书方法
为内网/局域网IP地址申请HTTPS证书,可增强数据传输的安全性。首先确定固定的内网IP地址,选择可信的证书颁发机构,注册并申请免费或付费SSL证书,提交相关信息,支付费用(如有)。证书申请成功后,下载并配置于服务器,确保通过浏览器访问时显示为安全连接。注意定期更新证书,确保持续的安全保障。此过程适用于局域网内部通信加密,提升内网服务的安全水平。
|
Web App开发 Linux
Centos 8 安装google浏览器(yum)
下载地址 https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
|
4月前
|
Web App开发 人工智能 安全
本地HTTPS证书免费 使用本地私有IP而不是域名作为站点,IIS部署站点
本文介绍如何用mkcert工具为本地或测试服务器快速部署HTTPS:下载mkcert→生成自签名证书(.pem/.key)→用OpenSSL导出PFX→IIS导入→客户端安装根证书(.crt)。全程免付费、操作简单,彻底解决Chrome“不安全链接”提示。
446 0
|
JavaScript 前端开发 数据可视化
图像裁剪库Cropper.js的学习使用
图像裁剪库Cropper.js的学习使用
916 111
|
运维 监控 安全
HTTPS 证书自动化运维:使用Certbot来申请https证书实践指南
本文深入探讨HTTPS证书自动化运维,提供实践指南与案例分析。首先介绍选择合适的工具和平台,如Certbot、ACME客户端及图形化管理系统的应用。接着详细讲解使用Certbot签发Let’s Encrypt证书的步骤,并强调安全策略、权限管理和监控日志的重要性。通过中小型企业与大型电商平台的实际案例,展示自动化运维的优势。最后针对常见问题提供解决方案,帮助读者实现高效、安全的证书管理。
|
存储 Java Maven
从零开始使用Nexus搭建你的Maven私服(Windows系统)
作为开发人员,我们经常需要依赖于Maven来管理项目的依赖,但是在工作中可能会遇到网络不稳定、依赖库被删除等问题。为了解决这些问题,搭建一个Maven私服是一个理想的选择。本文将介绍如何在Windows系统环境下使用Nexus来搭建Maven私服。
2292 0
从零开始使用Nexus搭建你的Maven私服(Windows系统)

热门文章

最新文章