通过https方式访问内网IP

单位要做个用浏览器扫二维码的功能。我先在本地测试一直不成功,后来放到服务器上运行成功了。比较了一下,服务器上是https,但是本地没有证书。我问了一下信安的同事,要求二维码必须在本地扫描,不能上公网。所以只好在本地弄一个允许通过https方式访问IP的服务。从网上查了一下,都是mkcert能实现,所以按照别人的方式试了一下,果然成功了。下面是实验的记录,希望能帮到有相同需求的朋友。

mkcert是一个使用go语言编写的生成本地自签证书的小程序,具有跨平台,使用简单,支持多域名,自动信任CA等一系列方便的特性可供本地开发时快速创建https环境使用。

一、下载

其最新版本地址如下:https://github.com/FiloSottile/mkcert/releases/latest

根据内部服务器的操作系统类型下载对应的windows/Linux/arm版本即可,我这里是x86的。

wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64

二、安装

赋予权限

chmod +x mkcert-v1.4.4-linux-amd64

将mkcert文件移动到bin目录下

sudo cp mkcert-v1.4.4-linux-amd64 /usr/local/bin/mkcert

安装证书

mkcert -install

三、生成证书

得到证书的根目录,将该目录下的rootCA.pem文件下载,将生成的证书下载到需要访问该ip的pc机上备用

mkcert -CAROOT

将可信ip写入,并生成对应的ssl证书,执行中可能会要求输入密码,需要记住该密码,后续配置https时会用到

mkcert localhost 127.0.0.1 ::1 192.168.1.99

四、Nginx部署证书

nginx部署需要crt和key文件,因此也需要通过mkcert生成的文件来进行转换

openssl x509 -in localhost+3.pem -out localhost+3.crt

openssl rsa -in localhost+3-key.pem -out localhost+3.key

将生成的这两个文件,复制到nginx的conf目录下,并配置nginx.conf

#在nginx.conf填写证书文件的相对路径或绝对路径

ssl_certificate conf.d/maruifu_cn/ssl/localhost+3.crt;

#请填写私钥文件的相对路径或绝对路径

ssl_certificate_key conf.d/maruifu_cn/ssl/localhost+3.key;

相关推荐
2501_9159184118 小时前
iOS 怎么抓包?抓包鹰系统级 网卡 应用层三种方式对比,不越狱抓 iPhone 流量
网络协议·计算机网络·网络安全·ios·adb·https·udp
后除21 小时前
Debian 安装与使用 Certbot
后端·nginx·https
2501_915921431 天前
抓包鹰抓取系统 App 的流量,从底层读明文
网络协议·计算机网络·网络安全·adb·https·udp
2501_915106321 天前
Python爬虫从零开始:七天掌握HTTP协议、数据解析与反爬策略
android·ios·小程序·https·uni-app·iphone·webview
无糖可乐没有灵魂1 天前
Security ❀ Https TLS抓包操作与解密配置
网络协议·http·https
就叫年华吧丶1 天前
Puppeteer 运行一段时间后报 `net::ERR_BLOCKED_BY_CLIENT`:一次 Chromium HTTPS 自动升级问题的完整排查
网络协议·http·https·puppeteer·chromium
2501_915921432 天前
详细解析,iOS 应用上架 App Store 的完整流程与指南
android·ios·小程序·https·uni-app·iphone·webview
Yan_chen6662 天前
HTTP和HTTPS 完整指南
网络协议·web安全·http·网络安全·https
是良辰3 天前
Docker Nginx HTTPS 自签证书部署完整操作文档
nginx·docker·https
AI人工智能+电脑小能手3 天前
【大白话说Java面试题 第216题】【10_网络协议篇】第7题:HTTP 协议和 HTTPS 协议的区别
java·http·网络安全·https·ssl/tls