运行vuejs与SSL开发服务器(以通过HTTPS)

运行vuejs与SSL开发服务器(以通过HTTPS)

问题描述:

重要的细节&解决方法:我遇到这样的:“Deprecating Powerful Features on Insecure Origins运行vuejs与SSL开发服务器(以通过HTTPS)

这说明HTTPS外部主机强制执行。我的笔记本电脑上有我的开发环境,并且在周末我进入了这个盒子,这就是为什么我昨天遇到了这个问题。我在笔记本电脑上远程运行vuejs开发服务器,使其听取0.0.0.0并在我的桌面上打开该页面。这会导致问题。

我试过使用SSH端口转发到localhost。这工作,是一个可接受的解决方法对我来说。

原始问题仍然有效。我现在将把它打开。


我正在使用需要SSL(WebRTC)的JS API。所以要开发,我需要通过HTTPS运行开发服务器。我怎么用vuejs做到这一点?

我已经使用webpack快速启动了该项目。我发现了一些解释如何通过SSL运行webpack-dev-server的链接,但我不知道如何使用vuejs应用程序来做到这一点。考虑到JavaScript的所有内容,我非常想要绿色环保。 webpack链接都提到了一个配置文件,但是我的项目中没有这样的文件。我看到的最接近的是“main.js”,但在那里完全没有配置。

从本质上说,我有什么是以下步骤的结果:

mkdir demo 
cd demo 
npm install --save-dev vue-cli 
./node_modules/.bin/vue init vuetifyjs/webpack-advanced demo 

# Use the defaults here (except for "Vue build" I used "Runtime-only") 

cd demo 
npm install 
npm run dev # <-- This is the command I would like to use SSL in 
+0

@exhumai嗨,我可以帮你为节点警告后显示。 JS,但为什么VUE.JS应该是不同的? – 2017-10-21 16:16:14

+0

我真的不知道。这几乎是我想用JS这样的开发Web服务器编写的第一个应用程序。我还没有使用过webpack。我觉得vuejs的开发流程很容易开始。除了我现在使用HTTPS问题 – exhuma

+0

挣扎我只是把基于快递FS和HTTPS基础上通过所需的OpenSSL生成的密钥添加certificat一个例子。问候。 – 2017-10-21 17:18:00

要求OpenSSL的安装:

首先,我们必须基于由做了重点 SSL certificat openssl并且没有密码短语cos这将会生成一个错误

nodejs https>node server.js _tls_common.js:87 c.context.setKey(options.key); ^Error: error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read ...

转到您的项目中开始创建关键& certificat:

openssl req -nodes -new -x509 -keyout key.pem -out cert.pem -days 365 

-nodes : Don't encrypt the private keys at all.

安装需要为您的项目包:(--save添加到的package.json)

npm install express --save 
npm install https --save 
npm install fs --save 

现在创建服务器文件:

touch server.js 
nano server.js 

复制/粘贴:以server.js

var fs = require('fs'); 
var https = require('https'); 
var app = require('express')(); 
var options = { 
    key : fs.readFileSync('key.pem'), 
    cert : fs.readFileSync('cert.pem') 
}; 

app.get('/', function (req, res) { 
    res.send('Hello World!'); 
}); 

https.createServer(options, app).listen(3000, function() { 
    console.log('Started!'); 
}); 

在这种CAS我们不使用443端口,因为已使用的服务,所以我使用的端口3000未使用任何应用程序...

+0

但不使用vuejs服务器?我不太确定,我明白。我已经有类似使用uwsgi的东西了。但是这对'.vue'文件没有帮助。 – exhuma

+0

@exhuma如果你想我使用vuejs我需要你的一部分服务器。发表它。如果需要,我也需要requieremnt模块。 – 2017-10-21 17:35:37

+0

没有什么特别的帖子。你稍等一会儿。我将编辑原始问题以添加如何设置vue项目的示例(基本上提供了一个像我所拥有的文件树)。 – exhuma

我不知道你是否仍然有这个问题,或者如果有其他人仍然遇到它,但我找到了解决方案。

按照上面的说明来生成你的工作文件夹中的OpenSSL的密钥和证书。

/node_modules/webpack-dev-server/bin/webpack-dev-server.js变化这一行从:

key: { 

    type: 'string', 

    describe: 'Path to a SSL key.', 

    group: SSL_GROUP 

    }, 

    cert: { 

    type: 'string', 

    describe: 'Path to a SSL certificate.', 

    group: SSL_GROUP 

    }, 

到:

key: { 

    type: 'string', 

    describe: fs.readFileSync('key.pem'), 

    group: SSL_GROUP 

    }, 

    cert: { 

    type: 'string', 

    describe: fs.readFileSync('cert.pem'), 

    group: SSL_GROUP 
    }, 

然后设置

argv.https = true; 

这就是我要做的有我的代码服务。

注意,命令行还是会读http://localhost:8080,但是当你在浏览器中使用https,您的应用从浏览器