refactor: 1
parent
767b8a196a
commit
566cdbe089
|
@ -305,7 +305,7 @@ npm run electron
|
||||||
|
|
||||||
### 打包成可执行文件
|
### 打包成可执行文件
|
||||||
```shell
|
```shell
|
||||||
cd packages/gui
|
# 先执行上面的步骤,然后运行如下命令打包成可执行文件
|
||||||
npm run electron:build
|
npm run electron:build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -39,16 +39,17 @@ DevSidecar在第一次启动时会在本地随机生成一份根证书,当有
|
||||||
## 二、信任根证书有安全风险吗
|
## 二、信任根证书有安全风险吗
|
||||||
|
|
||||||
1. 根证书是DevSidecar第一次启动时本地随机生成的,除了你这台电脑没人知道这份根证书的内容。
|
1. 根证书是DevSidecar第一次启动时本地随机生成的,除了你这台电脑没人知道这份根证书的内容。
|
||||||
2. 代理请求目标网站时会校验目标网站的证书(除非关闭了NODE_TLS_REJECT_UNAUTHORIZED)。
|
2. 代理请求目标网站时会校验目标网站的证书(除非关闭了`代理校验ssl`)。
|
||||||
|
|
||||||
> 综上所述,信任根证书没有问题。
|
> 所以信任根证书没有问题。
|
||||||
|
> 但如果应用本身来源不明,或者`拦截配置`里的替代网站作恶,则有安全风险。
|
||||||
最大的风险在于应用来源以及拦截配置里的替代网站。
|
|
||||||
|
|
||||||
> 对于应用来源风险:
|
> 对于应用来源风险:
|
||||||
> 请勿从未知网站下载DevSidecar应用,认准官方版本发布地址
|
> 请勿从未知网站下载DevSidecar应用,认准官方版本发布地址
|
||||||
> [Gitee Release](https://gitee.com/docmirror/dev-sidecar/releases)
|
> [Gitee Release](https://gitee.com/docmirror/dev-sidecar/releases)
|
||||||
> [Github Release](https://github.com/docmirror/dev-sidecar/releases)
|
> [Github Release](https://github.com/docmirror/dev-sidecar/releases)
|
||||||
|
>
|
||||||
|
> 或者从源码自行编译安装
|
||||||
|
|
||||||
> 对于拦截配置里的替代网站风险:
|
> 对于拦截配置里的替代网站风险:
|
||||||
> 1. 尽量缩小替代配置的范围
|
> 1. 尽量缩小替代配置的范围
|
||||||
|
|
|
@ -25,6 +25,7 @@ module.exports = {
|
||||||
port: 1181,
|
port: 1181,
|
||||||
setting: {
|
setting: {
|
||||||
NODE_TLS_REJECT_UNAUTHORIZED: true,
|
NODE_TLS_REJECT_UNAUTHORIZED: true,
|
||||||
|
verifySsl: true,
|
||||||
script: {
|
script: {
|
||||||
enabled: true,
|
enabled: true,
|
||||||
defaultDir: './extra/scripts/'
|
defaultDir: './extra/scripts/'
|
||||||
|
|
|
@ -13,9 +13,11 @@
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
{{title}}
|
{{title}}
|
||||||
<a-button type="primary" style="float:right" @click="doSetup()">点此去安装</a-button>
|
<a-button type="primary" style="float:right" @click="doSetup()">点此去安装</a-button>
|
||||||
|
<a-button style="float:right;margin-right:10px;" @click="openExternal('https://gitee.com/docmirror/dev-sidecar/blob/master/doc/caroot.md')">为什么?</a-button>
|
||||||
</template>
|
</template>
|
||||||
<div>
|
<div>
|
||||||
<b>本应用在非“安全模式”下必须安装和信任CA根证书</b>,该证书是应用启动时本地随机生成的<br/>
|
<b>本应用在非“安全模式”下必须安装和信任CA根证书</b>,该证书是应用启动时本地随机生成的<br/>
|
||||||
|
|
||||||
<template v-if="this.systemPlatform === 'mac'">
|
<template v-if="this.systemPlatform === 'mac'">
|
||||||
1、点击右上角“点此去安装按钮”,打开钥匙串<br/>
|
1、点击右上角“点此去安装按钮”,打开钥匙串<br/>
|
||||||
2、然后按如下图步骤将随机生成的根证书设置为始终信任<br/>
|
2、然后按如下图步骤将随机生成的根证书设置为始终信任<br/>
|
||||||
|
@ -70,6 +72,9 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
openExternal (url) {
|
||||||
|
this.$api.ipc.openExternal(url)
|
||||||
|
},
|
||||||
afterVisibleChange (val) {
|
afterVisibleChange (val) {
|
||||||
},
|
},
|
||||||
showDrawer () {
|
showDrawer () {
|
||||||
|
|
|
@ -32,11 +32,17 @@
|
||||||
<a-input v-model="config.server.port"/>
|
<a-input v-model="config.server.port"/>
|
||||||
<div class="form-help">修改后需要重启应用</div>
|
<div class="form-help">修改后需要重启应用</div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="校验SSL" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form-item label="全局校验SSL" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-checkbox v-model="config.server.setting.NODE_TLS_REJECT_UNAUTHORIZED">
|
<a-checkbox v-model="config.server.setting.NODE_TLS_REJECT_UNAUTHORIZED">
|
||||||
NODE_TLS_REJECT_UNAUTHORIZED
|
NODE_TLS_REJECT_UNAUTHORIZED
|
||||||
</a-checkbox>
|
</a-checkbox>
|
||||||
<div class="form-help">开启此项之后,被代理应用关闭SSL校验也问题不大了</div>
|
<div class="form-help">高风险操作,没有特殊情况请勿关闭</div>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="代理校验SSL" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
|
<a-checkbox v-model="config.server.setting.verifySsl">
|
||||||
|
校验加速目标网站的ssl证书
|
||||||
|
</a-checkbox>
|
||||||
|
<div class="form-help">如果目标网站证书有问题,但你想强行访问,可以临时关闭此项</div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="根证书:" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form-item label="根证书:" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-input-search addon-before="Cert" enter-button="选择" @search="onCrtSelect"
|
<a-input-search addon-before="Cert" enter-button="选择" @search="onCrtSelect"
|
||||||
|
|
|
@ -16,9 +16,8 @@ module.exports = function createRequestHandler (createIntercepts, middlewares, e
|
||||||
let proxyReq
|
let proxyReq
|
||||||
|
|
||||||
const rOptions = commonUtil.getOptionsFormRequest(req, ssl, externalProxy)
|
const rOptions = commonUtil.getOptionsFormRequest(req, ssl, externalProxy)
|
||||||
if (setting && setting.NODE_TLS_REJECT_UNAUTHORIZED) {
|
|
||||||
rOptions.agent.options.rejectUnauthorized = true
|
rOptions.agent.options.rejectUnauthorized = setting.verifySsl
|
||||||
}
|
|
||||||
|
|
||||||
if (rOptions.headers.connection === 'close') {
|
if (rOptions.headers.connection === 'close') {
|
||||||
req.socket.setKeepAlive(false)
|
req.socket.setKeepAlive(false)
|
||||||
|
|
Loading…
Reference in New Issue