当前位置: 首页 > news >正文

通过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;
 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 01. 真正实现一键自动化生成pdf报告
  • postgresql查询时报类型错误解决办法
  • 「字符串」前缀函数|KMP匹配:规范化next数组 / LeetCode 28(C++)
  • Cocos Creator2D游戏开发(14)---CocosCreator常用组件详解
  • webm格式怎么转换成mp4?7个有效方法将webm转mp4
  • 【网络】UDP和TCP之间的差别和回显服务器
  • 嵌入式day31
  • C++ 模板进阶知识
  • Java学习Day31:HTML 第一章:观音禅院
  • 低代码开发:机遇与挑战
  • python 可迭代,迭代器,生成器,装饰器
  • SpringBoot+Echarts实现可视化图表(Thymeleaf,Vue3.0两种实现)
  • Json-类型映射使用TypeFactory或者TypeReference
  • 多视点抓取(Multi-View Grasping)
  • STM32f407 网络接收 fpga 的 bin 文件并更新到 fpga series7(3)
  • 【5+】跨webview多页面 触发事件(二)
  • 77. Combinations
  • Create React App 使用
  • JavaScript服务器推送技术之 WebSocket
  • Java方法详解
  • js正则,这点儿就够用了
  • leetcode98. Validate Binary Search Tree
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PHP面试之三:MySQL数据库
  • webpack项目中使用grunt监听文件变动自动打包编译
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 编写高质量JavaScript代码之并发
  • 分布式事物理论与实践
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 设计模式 开闭原则
  • 移动端 h5开发相关内容总结(三)
  • 用Visual Studio开发以太坊智能合约
  • linux 淘宝开源监控工具tsar
  • raise 与 raise ... from 的区别
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 我们雇佣了一只大猴子...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ###项目技术发展史
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (LeetCode) T14. Longest Common Prefix
  • (windows2012共享文件夹和防火墙设置
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (一)Linux+Windows下安装ffmpeg
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)大型网站架构演变和知识体系
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .Family_物联网
  • .net 简单实现MD5