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

这篇具有很好参考价值的文章主要介绍了hbuilderx本地调试h5 vue应用的时候,怎么使用https证书?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用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协议  文章来源地址https://www.toymoban.com/news/detail-491052.html

到了这里,关于hbuilderx本地调试h5 vue应用的时候,怎么使用https证书?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue项目,uniapp项目本地调试开启https,加载本地证书

    废话不多说,前端开发调用摄像头,获取地址位置时需要https的问题,在本地运行时可以参考这篇文章操作 我这里用的mkcert 如果你使用的vite,那么可以直接使用vitejs/plugin-basic-ssl 这时,你应该能看到生成了四个文件 ca.crt ca.key cert.crt cert.key mac 双击ca.cert,在弹出的界面选择

    2024年02月05日
    浏览(57)
  • 华为手机真机调试HbuilderX

    1.首先在电脑和手机上安装手机助手,可以使用360华为腾讯,推荐使用华为手机助手 2.链接手机数据线至电脑,打开手机设置-关于手机-版本号(连续点击版本号)弹出您已处于开发者模式,此时已经开启了开发者模式   3.打开USB调试    4.选择USB设置-音频来源  5.打开电脑

    2024年02月12日
    浏览(57)
  • 在Vue3项目中,输入没有路由对应的路径时候,怎么跳转到404或者首页

    在一个Vue3应用中,通常情况下,我们使用Vue Router来处理路由。在Vue Router中,当用户请求输入一个不正确的URL路径时,没有路由与其相匹配,这时候会返回一个默认的404页面或者重定向到首页。因此,本文将通过以下几个方面来讨论如何在Vue3项目中实现这一功能。 1. 异步组

    2024年02月01日
    浏览(47)
  • HBuilderX运行ios基座调试Uniapp

    uniapp小程序开发需要运行到ios调试基座进行调试,但网上没有mac os和Xcode最新版本的运行流程,所以写下本篇,希望对各位有帮助,适用于有mac电脑或者虚拟机,没有iphone真机的开发环境 第一次运行如果提示下载 mac , ios , watch os , tvos 的SDK,选择mac和ios的下载即可 如果没有

    2024年02月04日
    浏览(45)
  • HBuilderX真机调试无法检测到手机设备

    在下列目录下打开终端,执行 adb devices 查看连接设备列表(也可以把 adb 配置到系统变量的 path 中) 关闭 HBuilderX 搜索设备框,终端输入命令 adb kill-server 杀死服务 终端重启服务 adb start-server 基本上就可以连接上了!

    2024年02月17日
    浏览(47)
  • vue3+vite如何在本地进行https调试

    有些功能只能在https环境下进行测试,如何在线下运行时进行https调试呢? 开启vite.config中的https,然后引入并使用一个自动签名的包即可。 npm i @vitejs/plugin-basic-ssl -D 启动项目弹出一个⚠️页面,会提示不信任的证书。 下面我们使用警告模式: vite-plugin-mkcert npm i vite-plugin-m

    2024年02月03日
    浏览(41)
  • HBuilderX在IOS上进行真机调试步骤

    这个软件是帮助我们使手机连接到电脑的 手机弹出是否信任,点击信任. 注意:自2022-09-14日开始,因DCloud收到苹果公司警告,目前开发者已无法在iOS真机设备使用标准运行基座。(Mac电脑中的iOS模拟器中还可以继续使用标准基座,它不限制企业证书使用) 方案一 如果要在真

    2024年02月17日
    浏览(52)
  • 微信云托管(本地调试)⑥:nginx、vue刷新404问题

            1.1、默认配置文件路径: /etc/nginx/nginx.conf 或 /home/centos/nginx/conf/nginx.conf         1.2、默认资源路径:/usr/share/nginx/html/index.html ( 注意配置中的:include /etc/nginx/conf.d/*.conf;  里面包了一个server配置文件 )  COPY ./nginx.conf /etc/nginx/nginx.conf COPY --from=nodeBuild /y-qd/dist /usr

    2024年02月14日
    浏览(44)
  • HBuilderX运行到手机或模拟器调试检测不到设备

            开发小程序或app时有时需要在真机上进行调试,有的功能必须要在真机上才能验证,例如:扫码。而且,通过真机调试才能确保软件开发的准确性和页面显示的完整性。         在使用HBuilderX进行调试时有时会遇到下面这种情况,提示“没有检测到设备,请插入设备

    2024年02月05日
    浏览(63)
  • H5使用微信OAuth2.0授权登录,并实现内网调试。

    H5实现微信授权登录的流程不在过多赘述官方文档传送门,下面直接上如何在开发状态下实现授权登录调试。 微信公众号的开发权限,配置后续会讲。 内网穿透工具。 一个node服务点这里koa2快速搭建,传送门。 如图所示点击网页授权域名设置 将这个文件txt下载到本地,下面

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包