web开发环境下启动HTTPS服务访问

早上好,中午好,晚上好,各位程序界的精英们!

有没有遇到过这种场景,需要在开发环境下调试https服务?

志哥在做高德地图集成到项目中时,需要获取当前地理位置,这个接口需要在https的环境下才能使用,不然就报以下错误:

js 复制代码
Get ipLocation failed.Geolocation permission denied.

并且浏览器的位置信息按钮也是禁用的:

那我们需要再开发环境起https服务,经过我的搜索,按照以下步骤就可以启动成功:

  1. 安装openssl
  2. 生成证书
  3. 配置开发服务器
  4. 启动项目
  5. 访问项目:https://xxxx

安装openssl

第一步:下载安装 打开网站下载对应系统的安装包:slproweb.com/products/Wi...

志哥使用的Windows系统,点击EXE下载

下载完成后双击安装,一直点击next,直到完成

最后一步这里取消勾选,即可。

第二步配置环境变量

  1. 右键点击"此电脑"或"我的电脑",选择"属性"。
  2. 点击"高级系统设置"。
  3. 在系统属性窗口中,点击"环境变量"。
  4. 在"系统变量"区域,找到并选中"Path"变量,然后点击"编辑"。
  5. 点击"新建",然后输入你解压OpenSSL的bin目录路径。例如,C:\OpenSSL-Win64\bin。
  6. 点击"确定"保存并关闭所有对话框。

第三步验证安装

  1. 打开命令提示符(cmd)或PowerShell。
  2. 输入以下命令来验证OpenSSL是否安装成功:
sh 复制代码
 openssl version

如果安装成功,这条命令将输出OpenSSL的版本信息。openssl已经成功入驻你的电脑!

生成证书

这一步最简单了,找个风水宝地,新建个文件夹,在路径上输入cmd打开终端,执行以下命令来生成自签名证书:

sh 复制代码
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
  1. 这条命令会生成一个名为key.pem的私钥文件和一个名为cert.pem的证书文件,有效期为365天。
  2. 按照提示输入证书信息,如国家、州、组织、姓名、邮箱等。
  3. 自签名证书仅适用于开发环境,不应该用于生产环境。

配置开发服务器

现在我们有证书了,让开发服务器支持https访问了

志哥目前使用的是angular-cli开发项目,以下演示使用angular.json配置

angular框架配置https服务

第一步:复制刚刚生成的两个文件cert.pem和key.pem两个文件到根目录。

第二步:打开angular.json文件,配置serve:

json 复制代码
"architect": {
  "serve": {
    "builder": "@angular-devkit/build-angular:dev-server",
    "options": {
      "browserTarget": "your-project-name:build",
      "ssl": true,
      "sslKey": "key.pem",
      "sslCert": "cert.pem"
    },
    ...
  },
  ...
}

第三步:重新启动服务,就可以通过https访问你的项目了

由于是自签名证书,浏览器可能会显示一个警告,提示连接不安全。你可以忽略这个警告并继续访问。

done!

vite项目配置https服务

第一步:还是一样拷贝刚刚的两个文件到项目根目录

第二步:打开vite.config.js配置:

js 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

// https://vite.dev/config/
export default defineConfig({
  plugins: [vue()],
  server: {
    https: {
      key: 'key.pem',
      cert: 'cert.pem',
    }
  }
})

第三步重启项目

就这样,你的vite项目也能在https的世界里畅游了!

志哥我想说

各位,以上就是https服务配置攻略。希望你们在开发的道路上,遇到问题都能迎刃而解,让代码飞得更高,跑得更远!记得,技术路上,志哥陪你一起闯!🚀🚀🚀

相关推荐
brien95 分钟前
为什么模型标称 1M,Google Antigravity 聊到 256K 却突然失忆?我们给它做了个原生行内监控圆环
前端
修炼的dance20 分钟前
录屏关键帧间隔多少合适?六档实测,2秒到10秒小了75.6%
前端
Lank_M27 分钟前
关键帧从1秒拉到10秒,录屏小87.3%,摄像头小10.8%
前端
补码缩写29 分钟前
用 ffprobe 拆录屏,八成字节在 29 个关键帧上
前端
百思不得小李30 分钟前
一个复杂的动态表单是如何实现的
前端·设计模式
陈随易44 分钟前
Cmder 停更 17 个月,2.0 支持 Windows Terminal
前端·后端·程序员
清晨Coding1 小时前
删了 Cookie 还能自动登录?Google系网站登录态自动恢复的原理分析
javascript
风骏时光牛马1 小时前
前沿视界
前端
kyriewen1 小时前
我扫了 814 个依赖,97 个还敢要 Node 10
前端·javascript·程序员
陈随易1 小时前
3000 万人在用的翻译插件,重写一遍就是一门生意
前端·后端·程序员