https的前端怎么连接到http的后端

前端为vue,部署到apache上,后端为java的网页程序,怎么将https的前端连接到http的后端上,访问后端的数据呢?

这是控制台的报错信息
_Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR

Uncaught (in promise) Error: Network Error createError.js:16
at t.exports (chunk-vendors.e8a2230e.js:7:67747)
at XMLHttpRequest.f.onerror (chunk-vendors.e8a2230e.js:69:30491)****_

这是http.js的代码

import axios from 'axios'


export const baseUrl = "https://*********/dataset";



// create axios instance
const instance = axios.create({
    baseURL: baseUrl,
    // withCredentials: true,
    timeout: 15000
});


//request interceptors
instance.interceptors.request.use(function (config) {
    return config;
}, function (error) {
    // reject
    return Promise.reject(error);
});


//response interceptors
instance.interceptors.response.use(function (response) {
    return response.data;
}, function (error) {
    // reject
    return Promise.reject(error);
});


export default function (method, url, data = null) {
    console.log("http.js",data);
    method = method.toLowerCase();
    if (method === 'post') {
        return instance.post(url, data)
    } else if (method === 'get') {
        return instance.get(url, { params: data })
    } else if (method === 'delete') {
        return instance.delete(url, data)
    }else if(method === 'put'){
        return instance.put(url,data)
    }else{
        console.error('unknown method '+method)
        return false
    }
}




这是httpd-vhosts.conf

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#


NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    ServerName diesel.******
    Redirect permanent "/" "https://diesel.********"
    #DocumentRoot "D:/workspaceFinalAdmin/workspaceFinal/dataset-web/dist"
</VirtualHost>

<VirtualHost *:80>
    ServerName neuron.*********
    Redirect permanent "/" "https://neuron.********"
    #DocumentRoot "D:/NEURON/Software/neuron-treeviz/neuron-treeviz/web/frontend/dist"
    #Redirect permanent "/" "https://localhost/"
</VirtualHost>

<VirtualHost *:443>
#<VirtualHost _default_:443>
    #Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
    ServerName *******

    #RewriteEngine On
    #RewriteRule ^ http://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

    #Redirect "/" "https://*******"

    DocumentRoot "D:/NEURON/Software/neuron-treeviz/neuron-treeviz/web/frontend/dist"
    ErrorLog "logs/localhost-error.log"
    CustomLog "logs/localhost-access.log" combined
    <Directory "D:/NEURON/Software/neuron-treeviz/neuron-treeviz/web/frontend/dist">
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile "D:/NEURON/SSL certificates/**********.crt"
    SSLCertificateKeyFile "D:/NEURON/SSL certificates/**********。key"
    SSLCertificateChainFile "D:/NEURON/SSL certificates/DigiCertCA.crt"
    <Location "/api">
        ProxyPass "http://127.0.0.1:8000"
        ProxyPassReverse "http://127.0.0.1:8000"
    </Location>
</VirtualHost>

<VirtualHost *:443>
#<VirtualHost _default_:443>
    #Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
    ServerName diesel.********

    #RewriteEngine On
    #RewriteRule ^ http://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

    #Redirect "/" "https://***********"

    DocumentRoot "D:/workspaceFinalAdmin/workspaceFinal/dataset-web/dist"
    #ErrorLog "logs/localhost-error_diesel.log"
    #CustomLog "logs/localhost-access_diesel.log" combined
    <Directory "D:/workspaceFinalAdmin/workspaceFinal/dataset-web/dist">
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile "D:/DIESEL/SSL certificates/**********.crt"
    SSLCertificateKeyFile "D:/DIESEL/SSL certificates/**********.key"
    SSLCertificateChainFile "D:/DIESEL/SSL certificates/DigiCertCA.crt"
    <Location "/api">
        ProxyPass "http://127.0.0.1:3000"
        ProxyPassReverse "http://127.0.0.1:3000"
    </Location>
</VirtualHost>






看下是这个原因吗
https://blog.csdn.net/abc409944643/article/details/102212421

让后台同时支持http和https访问啊

把后端改造一下支持HTTPS,
例如使用nginx代理配置同时支持http和https,找一下运维大大,分分钟帮你搞定,需要配置SSL证书

httpd修改参考,httpd使用较少,具体参数问友再上网查下
全站重定向多个页面:

<VirtualHost *:80>
    ServerName w1.com
    RedirectMatch ^/(.*)$ http://w2.com/$1
</VirtualHost>

http重定向https:

<VirtualHost *:80>
    ServerName www.w1.com
    ServerAlias w1.com
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>

https://blog.csdn.net/aaaaa12354/article/details/101364421

看看这个能不能用

前后端放一个服务器不就行了

后端接口域名加个https证书就好了

在反代设置文件里面对http请求进行转发,转发到https。虽然我不懂Apache的配置怎么写,下面好像有人写了,可以用一下。这样的话会浪费一次请求,在很卡的情况下用户体验会几乎炸掉。
实在不行就在放前端的服务器那里转发一份后端api。

正常部署是在服务器部署的应用上进行SSL证书卸载了,前后端都是在内部局域网,内部之间就不走https了。
你应该申请个https证书,在apache上配置SSL证书卸载。

用nginx 做反向代理,前端访问nginx走HTTPS,nginx代理访问后端走http。

可以用代理来帮你再转发一次,前端访问HTTPS,代理访问后端用http

其实楼上已经不少答案了,根据自己的需求进行设置测试就好。

还是反向代理解决,用nginx搭建https访问,代理转发http。实现从https请求到http请求的转换。

使用nginx或者apache都可以,配置跨域代理,当然vue本地也可以,好像在conf文件夹下配置,百度找一下我记得有

1、我记得tomcat可以将80默认转到443端口(强制http转https),相反应该也是可以的吧;
2、域名强制重定向;

连不了,是浏览器决定的,你在后端用caddy弄成https也可以的。

你把后端服务代理到某个域名下配置443和SSL证书,就成https的了,前端调你代理的域名就可以了

在nginx里配置两个服务,一个http的一个https的

一般是通过网页json数据进行传递的网页端设置一个接收器进行接受json数据

楼上说得很清楚,使用nginx或者apache都可以

这个很明显就是跨域的问题!

前端处理,做个代理,转到对应的后端

后端处理,把http转为https的下级目录即可!