范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

快速搭建基于HTTPS的本地开发环境

  奇技指南
  本文作者李松峰,资深技术图书译者,翻译出版过40余部技术及交互设计专著,现任360奇舞团高级前端开发工程师,360前端技术委员会委员、W3C AC代表。
  本文首发于奇舞周刊。
  快速搭建基于HTTPS的本地开发环境
  为什么本地开发要使用HTTPS?
  因为有很多Web API必须在HTTPS环境下才可以使用。比如,Clipboard API and events(https://www.w3.org/TR/clipboard-apis)中的 navigator.clipboard 对象是通过扩展 Navigator 接口定义的:partial interface Navigator {
  [SecureContext, SameObject] readonly attribute Clipboard clipboard;
  };
  在此,partial的意思就是扩展Navigator接口,给它增加一个Clipboard类型的只读成员属性clipboard。[SecureContext, SameObject]中的两个关键字是"扩展属性"(extended attribute),在这里修饰接口成员clipboard。SecureContext表示navigator只能在"安全上下文"中暴露clipboard属性,SameObject表示每次访问navigator.clipboard必须都返回相同的值。(参见:https://heycam.github.io/webidl/#SecureContext和https://heycam.github.io/webidl/#SameObject。)
  关于"安全上下文",W3C的Secure Contexts文档(https://w3c.github.io/webappsec-secure-contexts/)中有详细解释。根据MDN,全站HTTPS和通过http://localhost交付的网页是安全的。可以通过window.isSecureContext属性来检测当前上下文是否安全。if (window.isSecureContext) {
  navigator.clipboard.writeText("Write this to clipboard!").then(ok => true, err => false)
  }
  另外还有一个重要原因,就是有时候HTTP的本地请求可能会被HTTPS服务器拒绝。
  无论如何,我们在开发实践中都有可能碰到将本地Web服务HTTPS化的需求。这时候,我们可以创建自己私钥并签名一个根证书,并在开发环境中配置安装和信任自己的根证书。然后再通过这个根证书和私钥签发相应域名的SSL证书。
  好吧,开始干吧。1、生成自签名的根SSL证书
  首先生成一个RSA-2048加密的私钥,保存为localCA.key。生成过程中,会提示输入密码(pass phrase),以后在使用生成的私钥签发证书时都要输入这个密码。openssl genrsa -des3 -out localCA.key 2048
  接下来用这个私钥生成一个根SSL证书,保存为localCA.pem。有效期为1825天(5年)。openssl req -x509 -new -nodes -key localCA.key -sha256 -days 1825 -out localCA.pem
  在此期间,会提示输入:Country Name(2字母):国家/地区State or Province Name(全称):省/市/自治区Locality Name:所在地Organization Name:组织单位Organizational Unit Name:部门Common Name:常用名称,根证书的名称
  2、配置本地环境信任自签名根证书
  打开macOS中的"钥匙串访问"应用:
  1、"文件 > 导入项目",选择localCA.pem,打开(需要输入密码)
  2、双击导入的证书,在"信任"中选择"始终信任"
  3、退出当前窗口(需要输入密码),"此证书已标记为受所有用户信任"
  3、签发域名SSL证书
  首先,创建域名SSL证书的私钥,"ext"的意思在这里表示"泛域名",可以随意命名openssl genrsa -out ext.yourdomain.com.key 2048
  然后,用这个密钥创建一个CSR(Certificate Signing Request,证书签名请求)文件openssl req -new -key ext.yourdomain.com.key -out ext.yourdomain.com.csr
  在创建证书之前,还要创建一个配置文件,将其命名为ext.yourdomain.com.ext,包含如下内容:authorityKeyIdentifier=keyid,issuer
  basicConstraints=CA:FALSE
  keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
  subjectAltName = @alt_names
  [alt_names]
  DNS.1 = *.yourdomain.com
  注意这里的*.yourdomain.com,表示SSL证书可用于泛域名。
  最后,为*.yourdomain.com域名签发SSL证书openssl x509 -req -in ext.yourdomain.com.csr \
  -CA localCA.pem -CAkey localCA.key \
  -CAcreateserial -out ext.yourdomain.com.crt \
  -days 1825 -sha256 -extfile ext.yourdomain.com.ext
  把生成的证书和私钥文件复制到相应目录ext.yourdomain.com.crtext.yourdomain.com.key
  假设使用Webpack的devServer,配置如下:devServer: {
  proxy: {
  "*": "http://127.0.0.1:9360"
  },
  port: 443,
  https: {
  key: fs.readFileSync(path.join(__dirname, "ext.yourdomain.com.key")),
  cert: fs.readFileSync(path.join(__dirname, "ext.yourdomain.com.crt"))
  },
  host: "dev.yourdomain.com",
  allowedHosts: ["dev.yourdomain.com"]
  watchContentBase: true,
  // hot: true
  },
  配置HOST文件:127.0.0.1 dev.yourdomain.com
  127.0.0.1 test.yourdomain.com
  重启服务:
  再换一个子域名:
  注意,*.yourdomain.com只限一级泛子域名,即dev.yourdomain.com或test.yourdomain.com是可以的,而dev.h5.yourdomain.com则不可以!(如果有二级泛子域名需求,可以单独生成比如*.h5.yourdomain.com这样证书。)
  参考资料https://deliciousbrains.com/ssl-certificate-authority-for-local-https-development/https://medium.freecodecamp.org/how-to-get-https-working-on-your-local-development-environment-in-5-minutes-7af615770eec

叫支付宝的山东大爷,因名字困扰不断,却靠名字买车盖房支付宝起诉了支付宝。这句话乍一看有些不对劲,但其实是一位名叫支付宝的大爷,起诉了家喻户晓的支付软件支付宝。支大爷支大爷的名字已经用了几十年,并不是其他人猜测的支付宝火了以后就故意改哈希表和哈希函数及相关练习哈希表的原理哈希表(又称散列表)的原理为借助哈希函数,将键映射到存储桶地址。更确切地说,首先开辟一定长度的,具有连续物理地址的桶数组当我们插入一个新的键时,哈希函数将决定该键应该分iPhone13与iPhone12详细对比优缺点一目了然与上一代iPhone12相比,iPhone13有了重大改进,新机型具有美学上的变化以及规格表的差异,但这些差异是否重要到足以让你更换新机型?iPhone13推出后,iPhone12乔布斯签名版iPhone13亮相,iPhone12沦为百元机唱响让路悲歌据外媒报道,每年新iPhone推出后,俄罗斯奢侈品牌Caviar都会发布相应的个性版机型,通常以宝石和奢华材质装饰,但这次却转向了独家版iPhone13。值得一提的是,由于iPhoiPhone13和iPhone12哪个更值得购买?哪个值得买,下面小郭就来为大家分析下,主要是和它的性价比有关系,就目前iPhone13所提升的内容与iphone12那400元的差价来说,我推荐iphone13,听说粉色的ipho台电磁吸无线充电宝W10Pro,安卓用好,苹果用更好现在的智能手机市场,无线充电已经很常见了,特别是中高端旗舰手机,更是成了标配,市场上的无线充电宝,充电器也如雨后春笋,而自从苹果推出MagSafe充电器以来,这个市场逐渐也就更为火iPhone1414Max仍采用A15处理器3月20日消息,天风国际分析师郭明錤在社交媒体表示,iPhone14系列中,只有两款Pro版机型才会升级A16处理器,iPhone1414Max依然会沿用老款的A15处理器。据悉今内置电池!爱立熊A4打印机上手体验高颜值实力派前段时间家里的打印机坏了,想打印文件还要去附近的打印店打印,费钱不说,关键是费时费力。自己平时需要打印的文件不算多,主要是孩子的资料多,孩子上学经常需要打印试卷错题,一直去打印店还下一次冰河世纪是什么时候?在今天的环境下,人们会关注一些气候变化,因为气候变化也影响我们的生活,那么下一个冰河世纪是什么时候呢?会不会没有粮食收成?气温会下降多少?下一个小冰期是什么时候1020年后。根据科苹果iOS15。4正式版太耗电?网友一天冲二三次近日,部分用户反应苹果iOS15。4正式版太耗电,iPhone13ProMax电池续航暴降至半天。本周早些时候,苹果推出iOS15。4正式版。其最大的亮点功能是戴着口罩使用Face选手机怎么选?需要看那些东西呢不知道大家有没有这种感觉,现在是隔几天就发布一个新手机,搞得大家都不知道怎么选手机了。下面是手机厂商主要变化的地方1。屏幕尺寸挖空屏刘海屏曲面屏水滴屏2。影像三摄四摄光学防抖加AI
有人云平台全面升级!旧词新释秒懂物联网云平台的奥秘物联网云平台作为物联网体系的中枢神经,协调整合海量设备信息,构建高效且持续拓展的生态,是物联网产业的价值凝结。随着设备连接量增长数据资源沉淀分析能力提升场景应用丰富且深入,用户对物Android插件化的前世今生大揭秘预备知识了解android基本开发。了解android四大组件基本原理。了解ClassLoader相关知识。看完本文可以达到什么程度了解插件化常见的实现原理阅读前准备工作1clonAndroid研发历经20天面试终提Offer喜进阿里作者酱爆大头菜这是一篇面试总结文,是一篇从作者本身出发,把面试过程中遇到的问题,以及一些小小的建议阐述出来,希望对正在面试或者将要面试的你有一些小帮助。背景描述首先描述下背景,楼主封神级Android音视频开发学习路线很多开发者都知道Android音视频开发这个概念,音视频开发不仅需要掌握图像音频视频的基础知识,并且还需要掌握如何对它们进行采集渲染处理传输等一系列的开发和应用,因此,音视频开发是如何理解AndroidX与Jetpack的关系?作者小虾米君谈到Jetpack,大家都以为是一堆框架,事实上它的内容要大的多。本文以大家熟知的Preference组件为切入点,逐步探究它的前世今生。透过Preference组件的中继器网桥集线器交换机分不清?计算机基础知识来啦什么是中继器?中继器是作用在物理层上的一种信号增强装置,又叫重发器。它的作用是将被噪声影响的信号重新输出,对原信号进行放大和调整。中继器仅适用于以太网,可以将两段或者两段以上以太网P30ProAI莲说随手拍中发现拍照的变化和差异台风一过,这些天,气温升的较高,每天充其量在院子里转几圈,我们的院里有一个荷花池,每天的转悠,总能发现那些变化,如果不是那些素质极高的人士,来回把莲蓬给摘掉,弄得荷花池里乱七八糟,Mate20Pro西行随拍记游走翠华山(图片量多注意)今天是安排休息一天,很多人都商量着去一趟华山,华山以险著称,而不是以景色闻名(即便是有那云雾缭绕的景观也没时间等啊),想想临近五一黄金假期,想去华山的人必然不少,再加上天气开始热起微距?变焦?还是4000W大图?再谈荣耀20PRO微距随手拍俗话说微距出好片,一般来说也正是如此,微观世界不是平时就能体会和感受到的,微距拍照相对在构图方面更加的方便可控,如果身边没有那些美景尽收眼底的话,拍拍微距也是很不错的,特别是现在花小巧时尚,便捷好用的荣耀Mini照片打印机日常生活中,不知道大家有没有这种照片打印的需求,例如孩子报名急着需要证件照片,忙着见客户忘记带名片,没有又很尴尬,虽然现在都适用数字名片,但是纸质名片递上,特别是个性化的,总会显得南华生物进军医院及诊所管理领域,基础医疗有望持续扩容9月14日,南华生物披露关于控股子公司与中国红十字基金会签订合作协议的公告。公告显示,子公司南华和平医院管理(湖南)有限公司(以下简称南华和平)与中国红十字基金会(以下简称红基会)