hbuilderx本地调试h5 vue应用的时候,怎么使用https证书?

2023-05-16

使用uniapp在本地开发的时候,有时候是需要有https证书的,不然会提示证书错误。像camera的授权使用,还有gps地理位置的授权使用。如果没有https证书是很麻烦的。

那么可以在hbuilderx调试h5的使用https,而不是http呢?是可以的。 

找到mainfest.json文件,在h5字段里添加


 "devServer": {
            "https": true
        },

这样就会使用https了。但是有了新的问题是https但是证书是错误,需要我们自己生成一个证书,并指定使用自己的证书。

mkcert是一款用于创建本地TLS证书的工具。 在Mac上安装mkcert非常简单. 我们这里使用这个工具生成,你也可以寻找其它的办法生成。 

安装mkcert

brew install mkcert

在命令行里切换到你要放的目录下,然后可以使用以下命令创建名为“localhost”的TLS证书:

mkcert localhost

这将创建包含证书和密钥的文件,分别为localhost.pem和localhost-key.pem。 您可以使用这些文件在本地调试时保护https连接。

请注意,本地TLS证书仅用于本地开发和测试,不能用于生产环境。 在部署PWA到生产环境时,您应该使用来自可信CA的正式TLS证书。

mainfest.json的配置文件修改如下:

"devServer": {
            "https": true,
            "cert": "./localhost.pem",
            "key": "./localhost-key.pem"
        },

测试一下,hbuildx没有成功跑起来。。。。

得到以下错误

ERROR  Error: error:0909006C:PEM routines:get_name:no start line
09:35:42.252 Error: error:0909006C:PEM routines:get_name:no start line
09:35:42.253     at node:internal/tls/secure-context:69:13
09:35:42.266     at Array.forEach (<anonymous>)
09:35:42.267     at setCerts (node:internal/tls/secure-context:67:3)
09:35:42.281     at configSecureContext (node:internal/tls/secure-context:156:5)
09:35:42.282     at Object.createSecureContext (node:_tls_common:121:3)
09:35:42.319     at Server.setSecureContext (node:_tls_wrap:1349:27)
09:35:42.323     at Server (node:_tls_wrap:1208:8)
09:35:42.335     at new Server (node:https:73:3)
09:35:42.336     at Object.createServer (node:https:109:10)
09:35:42.350     at Server.createServer (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/webpack-dev-server/lib/Server.js:677:35)
09:35:42.365     at new Server (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/webpack-dev-server/lib/Server.js:128:10)
09:35:42.404     at serve (/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/commands/serve.js:191:16)
09:35:42.420     at processTicksAndRejections (node:internal/process/task_queues:96:5)

这个错误是提示证书有问题。

可以使用openssl工具来检查mkcert生成的TLS证书是否有问题。

openssl x509 -in <certificate-file> -text -noout

检查是有问题。那有可能是mkcert生成的证书有问题,mkcert -h 查看使用文档。发现还要安装一个本地ca才行。 Install the local CA in the system trust store.

mkcert -install
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).

但是,还是不行,一样的错误。现在我用openssl测试是证书是没问题了的。 怎么办呢?

搜索资料,突然发现一个可能的解决办法。直接把证书内容放到配置文件里,注意这里要把换行符替换成\n     

配置的样式如下,请替换成对应的自己的证书内容。

"devServer": {
            "https": true,
            // "cert": "./localhost.pem",
            // "key": "./localhost-key.pem"
            "cert": "-----BEGIN CERTIFICATE-----\nMIIEKzCCApOgAwIBAgIRALCSuo4XPQxpEXinUDlZDk8wDQYJKoZIhvcNAQELBQAw\nczEeMBwGA1UEChMVbWtjZXJ0IGRldmVsb3BtZW50IENBMSQwIgYDVQQLDBt3YW5n\n-----END CERTIFICATE-----\n",
            "key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCl8ZHeJ4d9OMIj\nYwyqJYRokRH/hMUVr5ljZIihpGPunaNHVXIL0DTzeokeocYhXywNzCWTpfCZpVzO\nZvG2EG/7TNHvqxn3gZzhTNyYoL7RRe9w/bQtHRF6fqJMn5PXu9Rqa3CeGDc1bjVC\n3yrafIS33n70OHWhMIw13QLuYcnSPb8zG+FEamg5rMeSKrHXw1WlZasaMLs26SQV\nuv7N7uKE3H6N89I1ZwFjgBiETRYWLmC6xKSkyKdbr4BlULvUaLSX0lTJgLedYo4v\nZ4xa97vsb61WVqzLhY0/XCPC0B3BLLKfX8zkNJX6IkA/UmwQfegUV6TRMKV0EAjq\n\n-----END PRIVATE KEY-----\n"
        },

重新启动本地调试。ok. 可以正常运行了。   

为什么使用相对路径不行呢?   是不是可以使用绝对路径。  有了解的同学可以说下有没有更好解决办法。 

devServer字段是hbuildx的manifest.json文件中的一个对象,用于配置开发服务器的相关选项。 下面是devServer对象中可用的所有字段及其作用:

  • port:开发服务器的端口号。
  • baseUrl:开发服务器的基本URL。
  • https:如果设置为true,则开发服务器将使用https协议。
  • cert:用于保护https连接的TLS证书。
  • key:用于保护https连接的TLS密钥。
  • headers:开发服务器应在响应中设置的标头。
  • compress:如果设置为true,则开发服务器将启用压缩。
  • progress:如果设置为true,则开发服务器将显示构建进度。
  • proxy:用于代理请求的配置对象。

例如,以下是一个示例manifest.json文件,其中包含devServer字段:

{
  "name": "My PWA",
  "short_name": "My PWA",
  "start_url": "./index.html",
  "display": "standalone",
  "theme_color": "#ffffff",
  "background_color": "#ffffff",
  "devServer": {
    "port": 8080,
    "baseUrl": "/",
    "https": true,
    "cert": "./localhost.pem",
    "key": "./localhost-key.pem",
    "headers": {
      "X-Custom-Header": "CustomValue"
    },
    "compress": true,
    "progress": true,
    "proxy": {
      "/api": {
        "target": "http://api.example.com"
      }
    }
  }
}

上面的示例配置中,开发服务器的端口号为8080,基本URL为“/”,将使用https协议  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hbuilderx本地调试h5 vue应用的时候,怎么使用https证书? 的相关文章

  • 精通CSS.DIV网页样式与布局(五) ——设置表格与表单样式

    表格和表单是网页中非常重要的两个元素 xff0c 我们这次来说说CSS如何设置表格和表单样式 我们先来看看CSS如何控制表格 首先表格中的标记 xff1a 我们看一下代码 xff1a lt html gt lt head gt lt tit
  • J2EE技术规范(七)——JTA(理解JTA,编写简单的事务客户程序)

    之前的内容中 xff0c 写了几篇关于J2EE规范的博客 xff0c 现在继续来完善这些内容 xff0c 这次内容主要补充上一篇博客 WebLogic Server使用JTA1 0 1a实现和管理事务 WebLogic Server提供以下
  • Android Studio(2.3.3)配置Kotlin笔记

    1 为AS装上Kotlin插件 xff0c 步骤如下 xff1a File gt Settings gt Plugins gt Browse Repositories中搜索 Kotlin gt 安装 xff08 Install xff09
  • J2EE技术规范(八)——JMS(消息,域)

    老样子 xff0c 继续完善J2EE技术规范 xff0c 这次内容主要是写个JMS 理解面向消息的中间件 定义 xff1a 消息 xff08 1 xff09 消息是可编程实现两端通信的机制 xff08 2 xff09 一些消息技术如 xff
  • J2EE技术规范(九)——JMS (JMS客户端)

    上篇博客写了JMS的一些内容 xff0c 后来觉得那篇博客的内容不够阐述JMS的内容 xff0c 所以这篇博客就继续完善JMS 在WebLogic Server 环境中配置JMS WebLogic Server的JMS特性 WebLogic
  • C++多线程项目 - 进程间通信实现(一)

    进程间通信实现 xff08 一 xff09 匿名管道有名管道匿名内存映射内存映射共享内存内存映射与共享内存比较 匿名管道 这里利用的是读时共享的策略 xff0c 因为只有读操作时 xff0c 子进程是共享父进程的资源 xff0c 那么我们进
  • KBQA的主要流程及部分Top竞赛方案总结

    一 KBQA的主要流程 1 1 什么是KBQA 给定自然语言问题 xff0c 通过对问题进行语义理解和解析 xff0c 进而利用知识库进行查询 推理得出答案 1 2 KBQA的实现范式 KBQA在技术上可以分成两种方案 xff0c 分别是一
  • Could not resolve host: github.com的解决方案

    描述 xff1a 新装的ubuntu2004 xff0c git clone命令时遇到标题描述问题 发现可以上网 xff0c 但是ping github com会出错 解决方法 xff1a 第一步 1 打开hosts文件 sudo vim
  • VirtualBox虚拟机网络怎么设置 VirtualBox虚拟机网络设置详细教程

    VirtualBox是国外的一款虚拟系统软件 xff0c 功能强大 xff0c 对于很多开发用户有所帮助 那么VirtualBox虚拟机网络该如何设置呢 相信很多用户会被这么一个问题所困扰 xff0c 下面小编来详细介绍下VirtualBo
  • C++库文件解析(conio.h)

    Conio h 控制台输入输出库 该文内容部分参照百度百科 Conio h 在C stanard library ISO C 和POSIX标准中均没有定义 Conio 是Console Input Output的简写 xff0c 其中定义了
  • [Qt] Linux环境下从源码编译Qt

    官网参考 xff1a Qt for Linux X11 Building from Source Qt 5 15 源码下载 xff1a Index of archive qt 5 15 5 15 0 submodules 这里使用的是各个模
  • Collections.max()方法不返回String类型的实际大小

    对于String类型的迭代器是按照字典序列排序的 xff0c 要让Collections max 方法返回实际的大小 xff0c 需要添加比较器 jdk8中对于Collections max xff09 方法有如下的说明 xff1a 样例
  • 简单三步,Github Pages自定义域名开启HTTPS

    登陆域名服务商后台增加 xff0c 域名解析记录 记录值格式为 xff1a username github io 登陆github xff0c 进行仓库设置 添加 自己的域名 xff0c 开启HTTPS
  • FtpClient.storeFile返回false解决方法

    原文地址为 xff1a FtpClient storeFile返回false解决方法 今天在利用FTP将客户端文件存储到服务器端时 xff0c 在调用ftpClient storeFile方法后 xff0c 总是返回false xff0c
  • 上班一个月,我的几点体会

    这篇博文其实在去年就已经在CSDN发过的 后来 xff0c 某次误操作不小心删除了 xff0c 今天找出来重新发一下 我是从3月1号开始上班的 xff0c 今天3月31号 xff0c 刚好一个月结束 xff0c 在这一个月里 xff0c 我
  • 我这一年写的博文

    总结2013 xff0c 展望2014 xff0c gt gt 我的2013年终总结 在苦与乐中成长 下面是我这一年所写的博客 xff0c 主要涉及C xff0c Net Framework xff0c SQL Server xff0c S
  • 我的2013年终总结——在苦与乐中成长

    写在前面 最近正好在三亚旅游 xff0c 空闲下来时 xff0c 便开始进行年终总结 由于去年年末较忙 xff0c 便错过了2012 年的年终总结 xff0c 所以本文将会对 2012 与 2013 两年一起进行总结 说说工作 学生 到 码
  • 走过2014,2015我将继续前行

    写在前面 一转眼 xff0c 一年时光就这么溜走了 在这辞旧迎新之际 xff08 这说法是不是很官方啊 xff0c 呵呵 xff01 xff09 xff0c 我将对即将过去的2014 年进行一番总结 xff0c 并对即将来临的 2015 年
  • C#使用随机数模拟器来模拟世界杯排名(二)

    接上一篇 xff1a C 使用随机数模拟器来模拟世界杯排名 一 C 使用随机数模拟器来模拟世界杯排名 一 斯内科的博客 CSDN博客 我们使用洗牌随机数算法来匹配世界杯对战国家 xff1a 新建洗牌随机数相关类RandomUtil 用于随机
  • Windows Server 2012 R2 服务器密码忘记问题

    解决方法 xff1a 1 准备好一张和当前Windows server 2012R2系统版本和位数相近 xff08 最好相同 xff09 的系统镜像光盘或者ISO文件 2 通过BIOS设置系统从光盘启动 出现安装系统的画面 xff0c 点击

随机推荐