https 怎么调用后端SpringBoot接口
前提
1.1 我用的是阿里云远程的Linux服务器,安装了nginx、MySQL
1.2 已经申请了域名,安装了SSL证书
1.2 前端用的是vue,后端用的是SpringBoot(前后端都已经部署到了买的那个Linux服务器上面)
我的问题
公司的官网在前几天就只是一个域名,还没有部署SSL证书,vue访问已经在远程服务器上打包好的后台接口也是用的 http://47.242.xxx.xx:8888/file 访问的,跨域已经解决了,可以获取到数据。
但是我部署了SSL证书之后,本地项目和远程项目通过 https://47.242.xxx.xx:8888/file 访问就不行,并且跨域问题又出来了;通过 https://域名:8888/file 也不行;(然后我就想可能不是前端vue的问题,有可能是后端的问题)
今天在SpringBoot的application.properties配置文件中配置证书:
#证书的路径.
server.ssl.key-store=classpath:keystore.p12
#证书密码,请修改为您自己证书的密码.
server.ssl.key-store-password=123123
#秘钥库类型
server.ssl.keyStoreType=PKCS12
#证书别名
server.ssl.keyAlias=tomcat
可以实现本地项目通过 https://47.242.xxx.xx:8888/file 或是 https://域名:8888/file 获取到远程服务器已经打包好的Java数据,但是还是不能通过 远程vue项目访问远程SpringBoot接口。
感觉好绕口啊,不知道大神们看不看得明白,或者有其他的解决方式也是好的,救救孩子吧o(╥﹏╥)o卡了好几天了o(╥﹏╥)o
简单来说就是 前后端放在同一台远程服务器上,vue使用https调用Java的接口
终于终于终于… 解决了… 哈哈哈哈哈…激动…
隔了好几天,网上的解决方式都没有用。自己终于解决了,还是nginx配置的问题。应该配到端口443下面的,不应该配到端口80那里,因为是放在服务器上面的,并且配置了SSL证书,所以https默认端口为443,跨域的配置也应该放到一起。
user www www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
multi_accept on;
}
http
{
include mime.types;
#include luawaf.conf;
include proxy.conf;
default_type application/octet-stream;
server_names_hash_bucket_size 512;
client_header_buffer_size 10240k;
large_client_header_buffers 6 10240k;
client_max_body_size 100m;
sendfile on;
tcp_nopush on;
keepalive_timeout