如何将 webapp 从 cloudflare 传输到 https?
How to transfer a webapp to https from the cloudflare?
我没有计划将服务器安装为 nginx,因此我的 Web 应用程序在 node.js 服务器上启动。在那里,类似的结构用于指代某些页面:
在服务器上:
if(process.env.NODE_ENV === 'production') {
app.use('/', express.static(path.join(__dirname, '../', 'client', 'dist')))
}
app.use('/api/bonds', bonds);
const port = 80;
客户端:
const url = '1.2.3.4:80/api/bonds';
class BondsService {
static getBonds() {
return new Promise(async (resolve, reject) => {
try {
const res = await axios.get(url);
const data = res.data;
resolve(data.map(bond => ({
...bond
})));
} catch (e) {
reject(e);
}
})
}
我将我的域转移到cloudflare,并将免费SSL证书设置为灵活模式。当我通过http访问应用程序时,一切正常,但是http什么时候报这样的错误:
xhr.js:178 Mixed Content: The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://1.2.3.4/api/bonds'. This request has been blocked; the content must be served over HTTPS.
如何解决?
我们在聊天中进行了广泛(一个小时)的讨论,我不知道如何在此处引用聊天 entirely.So我只是发布可以帮助您朝着正确方向前进的解决方案:
如果您是组织的一员,那么您首先必须与 Cloudflare 团队或来自 infra 的联系人联系
- 浏览器和cloudfare之间的连接是不是https?如果它已经是 https 那么 CA 证书是否已经是 browser/system 的一部分,或者我们是否需要显式加载它。
- cloudflare 和 node.js 服务器之间的连接如何 - 它是否加密...如果它是加密的那么你还必须加载 node.js 服务器的证书或 cloudflare 服务器的证书进入彼此的信任库。这将取决于它是否是双向 TLS。如果它是 cloudfare 和 node.js 服务器之间的 http 流量,则不需要证书。
请进一步了解 https/SSL 握手过程,以便更加清晰。
我没有计划将服务器安装为 nginx,因此我的 Web 应用程序在 node.js 服务器上启动。在那里,类似的结构用于指代某些页面:
在服务器上:
if(process.env.NODE_ENV === 'production') {
app.use('/', express.static(path.join(__dirname, '../', 'client', 'dist')))
}
app.use('/api/bonds', bonds);
const port = 80;
客户端:
const url = '1.2.3.4:80/api/bonds';
class BondsService {
static getBonds() {
return new Promise(async (resolve, reject) => {
try {
const res = await axios.get(url);
const data = res.data;
resolve(data.map(bond => ({
...bond
})));
} catch (e) {
reject(e);
}
})
}
我将我的域转移到cloudflare,并将免费SSL证书设置为灵活模式。当我通过http访问应用程序时,一切正常,但是http什么时候报这样的错误:
xhr.js:178 Mixed Content: The page at 'https://example.com/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://1.2.3.4/api/bonds'. This request has been blocked; the content must be served over HTTPS.
如何解决?
我们在聊天中进行了广泛(一个小时)的讨论,我不知道如何在此处引用聊天 entirely.So我只是发布可以帮助您朝着正确方向前进的解决方案:
如果您是组织的一员,那么您首先必须与 Cloudflare 团队或来自 infra 的联系人联系
- 浏览器和cloudfare之间的连接是不是https?如果它已经是 https 那么 CA 证书是否已经是 browser/system 的一部分,或者我们是否需要显式加载它。
- cloudflare 和 node.js 服务器之间的连接如何 - 它是否加密...如果它是加密的那么你还必须加载 node.js 服务器的证书或 cloudflare 服务器的证书进入彼此的信任库。这将取决于它是否是双向 TLS。如果它是 cloudfare 和 node.js 服务器之间的 http 流量,则不需要证书。
请进一步了解 https/SSL 握手过程,以便更加清晰。