在《本地安排上HTTPS的最佳途径》一文中,我们了解到,现代浏览器的安全策略越来越严格了,很多系统级API只能在https的网页上使用,比如下面这些:

API Chrome/Opera Edge Safari Firefox
异步剪贴板 API 66 不支持 不支持 63
后台同步(参见SyncManager 49 不支持 不支持 不支持
Cache-Control: immutable 不支持 15 11 49
凭证管理 API 51 不支持 不支持 不支持
通用传感器 API 67 不支持 不支持 不支持
付款请求 API。 61 15 11.1 正在开发中(在首选项后面dom.payments.request.enabled)。
推送API 42 17 不支持 44
报告API 支持的 不支持 不支持 自 Fx 65 起在标志后面
服务工作者 40 17 11.1 44
存储API 55 不支持 不支持 51
网页认证API 65 预览 (17) 开发中 60
网络蓝牙 56 不支持 不支持 不支持
网络MIDI(参见MIDIAccess,例如) 43 不支持 不支持 不支持
网络加密API 60 79 不支持 75

但是让本地开发的网页上https并不是那么容易,好在可以利用主机名作为local域名来访问,然后给主机名颁发ssl证书就解决了这个前端开发中的老大难问题,这里面涉及到的知识和计算机网络(网络工程)梦幻联动,这里简单介绍一下,计算机网络或者说 IT 行业近10年来逐渐成为主流的,关于网络连通性解决方案是【零配置网络协议】http://zeroconf.org/,顾名思义,就是一种开箱即用的网络协议。所谓“零配置”实质上是自动配置,就是在不需要任何人工或者各种服务的参与情况下实现主机之间网络通信的自动配置。设计零配置网络就是完成在不需要人工干预的情况下实现网络的互联。零配置网络目前主要应用在不具备人工管理网络的条件下,像家庭、小办公室、嵌入式设备之间以及未经准备的网络之间。

.local顶级域名就是零配置网络协议的产物之一,local就是local area network,本地局域网,在本地局域网中使用的域名叫做mDNS,多播DNS。关于mDNS的详细内容可以参考《私有IP与mDNS》或者《去中心化的多播DNS》这2篇文章,本文只要求你知道mDNS是一种,能在LAN中通过对方主机名访问对方电脑的协议,无论是微软还是苹果系统,都默认开启了mDNS,现在不需要每次都询问对方的IP地址了,直接呼其名即可ping通,非常方便。上次介绍了Windows下httpS的部署,这次就介绍macOS下的部署方法,原理是一样的。首先需要知道自己电脑的主机名:系统偏好设置-->共享:

可以看到,上面提示说“您的本地网络上的电脑可以通过以下地址访问您的电脑:xosg.local”,在本机做web开发时,这个域名等同于localhost。好,下面我们利用openssl给xosg.local颁发自签名的SSL根证书,先要生成私钥:

openssl genrsa -out xosg.local.key 2048

然后写一个配置文件xosg.local.conf:

[req]
distinguished_name=req
[SAN]
subjectAltName=DNS:xosg.local

最后利用这个私钥和配置文件生成公钥证书:

openssl req -new -x509 -key xosg.local.key -out xosg.local.cert -days 3650 -subj /CN=xosg.local -extensions SAN -config 'xosg.local.conf'

如果觉得麻烦,推荐使用在线的自签名证书生成工具https://www.selfsignedcertificate.com/:

输入域名,就给你自动生成xosg.local.key和xosg.local.cert,非常方便。

接着,我们要让系统信任这个证书,打开钥匙串访问:

导入xosg.local.cert,在“信任”一栏中选择“始终信任”:

最后一步,通知我们的本地http服务器,用这对私钥和证书开启https本地服务器,在浏览器中验证是否成功:

现在就能使用浏览器所有的API了,多谢零配置网络技术的成熟,使得Web前端开发的效率大大提升。

零配置网络助力httpS的部署相关推荐

  1. 开发板给电脑自动分配IP?手把手教部署零配置网络实现电脑与开发板直连

    关注.星标嵌入式客栈,精彩及时送达 [导读] 在做一个ZYNQ项目时,需要实现嵌入式Linux与Windows电脑直连.可能会有盆友会遇到类似的需求,所以整理分享一下. 问题描述 基于ZYNQ芯片设计 ...

  2. pve6.3安装部署与虚拟机配置+网络部署

    PVE6.3 安装配置部署与虚拟机配置 参考资料 https://blog.csdn.net/allway2/article/details/102946660?ops_request_misc=%2 ...

  3. Apollo 1.9.2 部署手册实现本地零配置

    1:阿里云部署Apollo,默认注册的Eurake是内网IP地址,需要修改AdminService和ConfigService的application.yml配置信息 eureka:instance: ...

  4. Springboo零配置原理

    1.一个web程序怎么跑起来? 当客户端(可以是浏览器.也可以是postman等工具)发送请求给服务器后,服务器会调用并执行对应的逻辑代码进行请求处理.逻辑代码是由程序员自己编写然后放进服务器进行运行 ...

  5. 【直播课】6小时教你掌握轻量级网络,在安卓部署第一个深度学习模型

    前言 想要设计自己的神经网络,却不知道如何下手完成搭建? 想获得更高的任务指标吗?想获得更快的运行速度吗? 想获得更小的模型体积吗?想获得稳定可靠的性能吗? 跑通了经典模型却不知道模型结构是什么样的? ...

  6. linux如何配置网络设置_如何在Linux中配置网络

    linux如何配置网络设置 将Linux计算机连接到网络非常简单,除非不是这样. 在本文中,我讨论了基于Red Hat的Linux发行版的主要网络配置文件,并介绍了两个网络启动服务:古老的网络启动和有 ...

  7. Linux(CentOS 6.5)下配置Mono和Jexus并且部署ASP.NET MVC5

    1.开篇说明 a. 首先我在写这篇博客之前,已经在自己本地配置了mono和jexus并且成功部署了asp.net mvc项目,我也是依赖于在网上查找的各种资料来配置环境并且部署项目的,而其在网上也已有 ...

  8. 配置网络策略中的 NAP 条件

    TechNet 库 Windows Server Windows Server 2008 R2 und Windows Server 2008 按类别提供的 Windows Server 内容 Win ...

  9. 零信任网络ZTNA及SDP概念理解

    本文是对云安全联盟发布的<NIST零信任架构>及<SDP标准规范>的学习记录,用一句话总结:零信任是一种安全理念,SDP是一种落地方案. 一.什么是零信任网络 传统模型假设:组 ...

最新文章

  1. 微信jssdk批量添加卡券接口(踩坑经验)
  2. 美国计算机科学厉害的大学,求推荐美国综合排名40~70间计算机科学较好的大学...
  3. python join_详解Python中的join()函数的用法
  4. 模板实现栈队列以及链表
  5. Qt之QNetworkInterface
  6. Command NetWork(POJ-3164)
  7. 节点预测与边预测任务实践
  8. 计算机在线问答,网络信息安全知识:公安机关发现影响计算机信息系统安全的隐患时,()。...
  9. centos7 mysql 开机启动_mysqld service 随开机启动 (Centos6,Centos7)
  10. tensorflow学习5----GAN模型初探
  11. ip 地址 192.168.1.255 代表( )。_如何批量ping大量ip地址?一个软件搞定
  12. java jstl标签库_JSTL标签库
  13. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)转载自码农网
  14. 在Java环境下怎么打开_Java环境配置及在Dos命令下运行Java程序
  15. OFFICE技术讲座:WP布局方向有哪些
  16. 浏览器提示:你的连接不是专用连接的解决方法
  17. (附源码)python 在线办公系统 毕业设计 071116
  18. Insyde uefi 隐藏设置_苹果手机:插件NoMessageButtons:可隐藏iOS信息应用界面的按钮...
  19. agd插值算法_插值算法(一):各种插值方法比较
  20. hive经典面试题1--根据主播上播、下播时间戳求播出时长

热门文章

  1. 华为2288HV5使用U盘安装ESXI6.7.0
  2. JAVA 一个月多少天
  3. 计算机网络的安全目标要求网络,国家制定并不断完善(),明确保障网络安全的基本要求和主要目标,提出重点领域的网络安全政策、工作任务和措施。 - 众答网问答...
  4. Python 最详细的 socket 相关内容解读
  5. SDUT-2245 小学数学
  6. 海关数据|俄罗斯与中国之间的贸易数据
  7. PTA天梯赛L1刷题总结(三)15分题型(超详细题解)
  8. 区块链基础理论与研究概况(前沿版)
  9. 软件项目管理==风险计划
  10. U盘数据加密--Bitlocker