google 浏览器本地使用 https 的解决办法
问题描述
本地开发 http://localhost
需要使用 HTTPS
运行,devServer 设置了 https: true
,依然打不开页面,点击高级也没有继续前往的选项。
// webpack.config.js
devServer: {
https: true,
// ....
}
原因
HTTPS 网站是需要证书的,浏览器无法识别当前访问的 https 网站证书或验证有问题,所以要强制用户在键盘输入this-is-unsafe(这是不安全的),再次告知了风险。
解决方法
在当前页,直接在键盘上敲以下内容thisisunsafe
不是在地址栏输入!按下键盘上对应的字母就可以了。
此时打开的 https 是不安全的:
更深一步
在大多数情况下,本地开发 http://localhost
就可以满足需求。在浏览器中,它的行为与 HTTPS 非常类似。因此,部分无法在部署的 HTTP 网站上运行的 API 可以在 http://localhost
上运行。 这意味着开发人员只需要 在特殊情况下 才需要在本地使用 HTTPS,例如自定义主机名或跨浏览器的安全 cookie...
安全访问 https
使用以上方法,可以本地访问 https 页面,但是不安全。若想安全,需要 TLS 证书,但并非任何证书都会被浏览器接受:证书需要由您的浏览器信任的实体签名,这些实体称之为可信证书颁发机构 (CA)。
创建 TLS 证书
推荐使用 mkcert 为本地开发创建 TLS 证书。
工作原理如下:
- 如果使用 HTTPS 在浏览器中打开本地运行的网站,浏览器将检查本地开发服务器的证书。
- 在看到证书已由 mkcert 生成的证书颁发机构签名后,浏览器会检查它是否已注册为受信任的证书颁发机构。
- mkcert 已被列为受信任的颁发机构,所以浏览器会信任该证书并创建 HTTPS 连接。
推荐阅读
JS 事件循环(Event Loop)
理解 JavaScript 的事件循环往往伴随着宏任务和微任务、JavaScript 单线程执行过程及浏览器异步机制等相关问题,而浏览器和 NodeJS 中的事件循环实现也是有很大差别。熟悉事件循环,了解浏览器运行机制将对我们理...
时倾赞 1阅读 249
gitlab-ce将https修改为http
索性我们禁用gitlab的https功能,将期恢复为http。后期我们再在部署一个nginx进行数据转发,然后在nginx上起用https并设置证书。这样应该就规避了gitlab的证书错误问题。
myskies赞 1阅读 645
gitlab-ce使用nginx做反向代理的方式启用https
由于某些未知的原因,gitlab-ce的https近期出现了问题,被chrome识别出是非安全的连接。索性我们将了gitlab-ce的https改为http。但当下https基本上已经成为了标准,不启用https好像有点说不过去。
myskies阅读 769
HTTPS 是这样握手的
HTTP协议默认是明文传输,存在一定的安全隐患,容易被中间人窃听和攻击,在 加密解决HTTP协议带来的安全问题 中提到使用哈希、对称加密、非对称加密等方式对数据加密,能解决数据安全的问题。
一颗冰淇淋阅读 672
使用nodejs的http和https下载远程资源,post数据
经常用到nodejs下载资源的情况(简单的爬虫),可以考虑直接使用nodejs内置的http/https模块。test.mjs {代码...} post数据 {代码...}
jsoncode阅读 534
https是怎么防止中间人攻击的
什么是中间人攻击一般,一个http请求,是从客户端请求出去,再到达服务端。但请求不是直接到达服务端的,因为网络上要经过很多"节点",最后才会到达服务端。举个例子比如,平时用的fiddler工具。当客户端发出请求...
simonbaker阅读 400
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。