【发布时间】:2017-02-20 16:42:05
【问题描述】:
目前我有一个 NodeJS + ExpressJS 客户端服务器设置,它对后端服务器进行 API 调用。但是每当我这样做时,我首先必须直接进入 API 后端服务器的 URL 并查看以下页面,然后转到 Advanced -> Proceed to https://backendserver.com:8080 (Unsafe),以便能够进行 API 调用没有任何错误。
有没有办法始终允许它Proceed to https://backendserver.com:8080 而无需通过浏览器手动执行?
这是我使用 fetch() 进行 API 调用的方法:
loggingIn(userInfo) {
var userInfoBody = {
'username': `${userInfo.username}`,
'password': `${userInfo.password}`
}
var configuration = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(userInfoBody)
}
return function(dispatch) {
fetch('https://backendserver.com:8080/creds', configuration)
.then(response => response.json())
.then(response => {
console.log('Success and response is', response)
})
.catch((error) => {
console.log("Error: ", error)
})
}
我的 NodeJS + Express 是这样设置的:
var express = require('express');
var cors = require('cors');
var path = require('path');
var config = require('../webpack.config.js');
var webpack = require('webpack');
var webpackDevMiddleware = require('webpack-dev-middleware');
var webpackHotMiddleware = require('webpack-hot-middleware');
var app = express();
var compiler = webpack(config);
app.use(cors());
app.use(webpackDevMiddleware(compiler, {noInfo: true, publicPath: config.output.publicPath}));
app.use(webpackHotMiddleware(compiler));
app.use(express.static('./dist'));
app.use('/', function (req, res) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.sendFile(path.resolve('client/index.html'))
})
var port = 3000;
app.listen(port, function(error) {
if (error) throw error;
console.log("Listening to ", port);
})
【问题讨论】:
-
对 backendserver.com:8080 使用有效的证书
-
将您的自签名证书添加到受信任的存储区(请参阅this answer)或使用letsencrypt 生成有效证书。
-
@JaromandaX 抱歉,这需要前端实现吗?因为我无法访问后端,并且我正在尝试弄清楚如何通过代码实现绕过它,所以应用程序的每个用户都不必手动绕过它。
-
@mallendeo 有没有办法通过代码实现来做到这一点?因为,多个用户将在不同的计算机上使用该应用程序,并且不希望每个用户都手动绕过它。想编写代码实现,这样它就会被不同计算机上的任何用户自动绕过它。
-
您想绕过浏览器中的安全性 - 如果只是为了您自己,那么很简单,为您的浏览器接受的证书添加一个例外 - 如果是为了其他人,那么他们需要这样做一样(祝你好运)
标签: javascript node.js ssl express reactjs