在Nginx上使用Axios / Express提供的Vue.js应用程序,丢失HTTPS并在登录页面后变为HTTP]] << [

问题描述 投票:0回答:1
用户登录后,我的Vue.js应用程序从HTTPS切换到HTTP,我不确定为什么。 Vue.js前端使用nginx提供服务,并使用Axios访问Express后端API,该API查询本地MongoDB服务器的登录信息和远程SQL Server的数据。如果有人可以提供任何指导,将不胜感激,因为这是针对一个工作项目的。

我不确定这是否可能是一个线索,但是登录到应用程序中的会话后,如果我打开一个新标签并手动输入一个不访问Express后端的视图的URL([ C0]),则该站点将在HTTPS下是安全的,但如果我对访问Express后端(https://subdomain.website.com/view_that_doesnt_access_express_api)的视图执行相同操作,则该站点将是不安全的,并且位置栏中的HTTPS显示为交叉以红色显示。

nginx已配置SSL,并按照以下说明将80重定向到443(/ etc / nginx / sites-available / project):

https://subdomain.website.com/view_that_accesses_express_api

Express服务器也被配置为HTTPS(app.js),具有与nginx相同的证书文件:

server { listen 80; server_name subdomain.website.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name _; ssl_certificate /path/to/my/cert.crt; ssl_certificate_key /path/to/my/key.rsa; root /path/to/my/dist; index index.html access_log /var/log/nginx/site.access.log; error_log /var/log/nginx/site.error.log; location / { try_files $uri /index.html =404; } }

Axios(Service.js):

var httpscert = fs.readFile('cert.crt'); var httpskey = fs.readFile('key.rsa); var options = { key: httpskey, cert: httpscert }; var server = https.createServer(options, app); server.listen(3000, function () { console.log("Express HTTPS running on 3000"); })

Axios(Api.js):

import Api from '@/services/Api' export default { loginUser (email, password) { return Api().post('login', { email: email, password: password }) } }

这是我关于StackOverflow的第一个问题,所以如果我没有正确询问此问题,请告诉我。

谢谢。

用户登录后,我的Vue.js应用程序从HTTPS切换到HTTP,我不确定为什么。 Vue.js前端使用nginx提供服务,并使用Axios访问Express后端API,该API查询...

express vue.js nginx https axios
1个回答
0
投票
但是如果我对确实访问Express后端(import axios from 'axios' export default() => { return axios.create({ baseURL: 'https://192.168.10.117:3000' }) } )的视图执行相同操作,则该站点将不安全,并且位置栏中的HTTPS将以红色划线显示。

这并不表示您的设置有误,仅表示您在该页面上拥有通过HTTP(而不是HTTPS)提供服务的资产。这就是为什么锁被越过的原因。

您应检查您的页面源,并检查是否有通过HTTP加载的脚本或样式。将其更改为HTTPS,就可以了。
© www.soinside.com 2019 - 2024. All rights reserved.