文档章节

Electron应用使用自签名证书进行HTTPS链接

开源中国首席劝架师
 开源中国首席劝架师
发布于 2018/03/08 17:59
字数 650
阅读 2.8K
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

为什么要使用https

通俗点讲https就是加密的http,http的链接是明文传输,被黑客截获后可以查看你传输的所有内容,包括用户名、密码等,从而盗取你的帐户信息。使用https,虽然黑客仍能获取你传输的所有数据,但只能看到一堆密文,保证了数据安全。

安装 OpenSSL

创建自己的CA(证书颁发)机构

  • 为CA生成私钥
openssl genrsa -out ca-key.pem -des 2048
  • 通过CA私钥生成CSR(证书签名请求)
openssl req -new -key ca-key.pem -out ca-csr.pem
  • 通过CSR文件和私钥生成有效期10年的自签名CA证书
openssl x509 -req -in ca-csr.pem -signkey ca-key.pem -out ca-cert.pem -days 3650

CA证书是一种特殊的自签名证书,可以用来对其它证书进行签名。这样当验证方选择信任了CA证书,被签名的其它证书就被信任了。在验证方进行验证时,CA证书来自操作系统的信任证书库,或者指定的证书列表

创建服务器端证书

  • 为服务器生成私钥
openssl genrsa -out server-key.pem 2048
  • 利用服务器私钥文件服务器生成CSR
openssl req -new -key server-key.pem -out server-csr.pem
  • 通过服务器私钥文件和CSR文件生成服务器证书
openssl x509 -req -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -in server-csr.pem -out server-cert.pem -extensions v3_req -days 3650

以上生成证书的代码都会将证书创建在你当前的操作命令的目录,请先选择好适当的目录路径

nodejs开启https服务

const options = {
  key: fs.readFileSync(path.resolve(__dirname, './server-key.pem')),
  cert: fs.readFileSync(path.resolve(__dirname, './server-cert.pem')),
  ca: [fs.readFileSync(path.resolve(__dirname, './ca-cert.pem'))]
}
const app = require('https').createServer(options, (req, res) => {
  res.writeHead(200)
  res.end('hello world\n')
})

app.listen(3000)

Electron使用Chrome命令行开关

在Electron应用的main.js文件配置

// 忽略证书相关错误
app.commandLine.appendSwitch('ignore-certificate-errors')

因为自签名的CA不会被浏览认可,因此需要把Chrome的忽略证书相关错误命令开启,但不用担心你的数据不会被加密,只要你的证书配置正确,浏览器都会为你加密传输的

【参考】

开源中国首席劝架师

开源中国首席劝架师

粉丝 58
博文 21
码字总数 20303
作品 4
广州
高级程序员
私信 提问
加载中
请先登录后再评论。
Netty那点事(三)Channel与Pipeline

Channel是理解和使用Netty的核心。Channel的涉及内容较多,这里我使用由浅入深的介绍方法。在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制。为了避免枯燥,借用一下《盗梦空间》的...

黄亿华
2013/11/24
2W
22
访问安全控制解决方案

本文是《轻量级 Java Web 框架架构设计》的系列博文。 今天想和大家简单的分享一下,在 Smart 中是如何做到访问安全控制的。也就是说,当没有登录或 Session 过期时所做的操作,会自动退回到...

黄勇
2013/11/03
3.4K
6
Flappy Bird(安卓版)逆向分析(一)

更改每过一关的增长分数 反编译的步骤就不介绍了,我们直接来看反编译得到的文件夹 方法1:在smali目录下,我们看到org/andengine/,可以知晓游戏是由andengine引擎开发的。打开/res/raw/at...

enimey
2014/03/04
5.9K
18
CDH5: 使用parcels配置lzo

一、Parcel 部署步骤 1 下载: 首先需要下载 Parcel。下载完成后,Parcel 将驻留在 Cloudera Manager 主机的本地目录中。 2 分配: Parcel 下载后,将分配到群集中的所有主机上并解压缩。 3 激...

cloud-coder
2014/07/01
6.8K
1
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22

没有更多内容

加载失败,请刷新页面

加载更多

搞网站的你,不了解一下共享虚拟主机和备案问题

正文共:1474字 14图,预估阅读时间:4 分钟 今天分享的这一切要从域名备案说起。先科普一下,平时我们访问网站都是用域名访问的,通过DNS服务器将域名解析为IP地址(你知道上网时输入的URL...

郭松成
昨天
0
0
10 分钟学会 pillow 图像处理 16 式

PIL:Python Imaging Library,是Python环境下最受欢迎的图像处理库之一。 pillow简单优雅而功能强大,是图像相关机器学习任务中算法工程师的亲密合作伙伴。 我们将介绍pillow的如下16个图片...

zglg
昨天
0
0
3大排行榜告诉你,Java&Python有多稳

什么编程语言最受欢迎? 零基础小白学什么语言最好找工作? …… 关于这些问题的讨论从来都没停止 今天领扣🐱就来盘点一下 如今最受欢迎的语言到底是什么 Java&Python学习大礼包 资料领取方...

Lintcode
今天
0
0
这道原题答出来了还是跪!今年面试也太难了……

秋招已然到来,Amazon这不又发了一堆岗位,此时可以说是上岸最好机会!不过上周有同学反馈面试亚麻,遇到一题曾经刷过,惨的是最后还是跪了,班班仔细一问原来是这道。 给定一个整数序列,找...

九章算法
今天
0
0
【你只需看一次】YOLO 全系列目标检测算法

文章目录 一、概述 二、Yolo系列全家桶 YOLOv1 开山鼻祖之作 YOLOv2 YOLOv3 YOLOv4 目标检测tricks集大成者 YOLOv5 Fast YOLO Complex-YOLO MV-YOLO YOLO3D YOLO-6D YOLO-LITE Spiking-YOLO ......

osc_5p8bxoq2
7分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部