我不确定这是否可能是一个线索,但是登录到应用程序中的会话后,如果我打开一个新标签并手动输入一个不访问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查询...
import axios from 'axios'
export default() => {
return axios.create({
baseURL: 'https://192.168.10.117:3000'
})
}
)的视图执行相同操作,则该站点将不安全,并且位置栏中的HTTPS将以红色划线显示。这并不表示您的设置有误,仅表示您在该页面上拥有通过HTTP(而不是HTTPS)提供服务的资产。这就是为什么锁被越过的原因。
您应检查您的页面源,并检查是否有通过HTTP加载的脚本或样式。将其更改为HTTPS,就可以了。