前后端分离部署https

引用:https://blog.csdn.net/weixin_35676679/article/details/127841598

前后端部署,,一般用的是nginx和java,,,

下载SSL证书:

java配置https

将证书配置到springboot中

yml 复制代码
server:
  port: 5443  # https的端口
  http:
    port: 5050  # http的端口
 
  ssl:
    key-store: classpath:XXXX.pfx    #类路径下的CA证书
    key-store-password: 证书密码     #证书密码

配置Tomcat,,将http端口转发到https上:

java 复制代码
@Configuration
public class TomcatConfig {
    @Value("${server.http.port}")
    private int httpPort;
    @Value("${server.port}")
    private int httpsPort;




    @Bean
    public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector) {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(connector);
        return tomcat;
    }


    @Bean
    public Connector connector(){
        Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        //http端口
        connector.setPort(httpPort);
        connector.setSecure(true);
        // https端口,即server.port
        connector.setRedirectPort(httpsPort); //重定向到htts
        return connector;
    }
}
配置nginx的证书
shell 复制代码
server{

listen 443 ssl;
server_name 域名;
ssl_certificate 证书.pem;
ssl_certificate_key  证书.key;


ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;



location /{
		# 前端位置
		root /home/wechat/dist;
          index  index.html index.htm;
            # 配置 history模式,刷新页面会404,,因为服务器没有正确的处理路由请求
                        try_files $uri $uri/ /index.html;


}


location /api/ {
  proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://127.0.0.1:8082/;



}


}

443 访问前端,,,转到后端,,,

遇到的问题:

  • 前端上传图片端口,,和后端不是一个端口,,====》上传文件端口,request.getServerPort() 获取端口为什么是443 ,,不是后端的8082
相关推荐
Hello_Embed30 分钟前
嵌入式上位机开发入门(三):TCP 编程 —— Server 端实现
笔记·单片机·网络协议·tcp/ip·嵌入式
zt1985q3 小时前
本地部署开源元搜索引擎 SearXNG 并实现外部访问
服务器·网络协议·开源
摇滚侠3 小时前
系统工作台待办实时提醒,取代五分钟刷新一次,判断有没有新的待办,利用 WebSocket 实现
网络·websocket·网络协议
半壶清水4 小时前
[软考网规考点笔记]-局域网之以太网标准
网络·笔记·网络协议·考试
初九之潜龙勿用6 小时前
C# 解决“因为算法不同,客户端和服务器无法通信”的问题
服务器·开发语言·网络协议·网络安全·c#
zt1985q8 小时前
本地部署 Home Assistant 高级自动化 AppDaemon 并实现外部访问
运维·服务器·网络·网络协议·自动化
野犬寒鸦11 小时前
计网复习Day01
服务器·后端·网络协议·面试
浅念-11 小时前
Linux 进程与操作系统
linux·运维·服务器·网络·数据结构·笔记·网络协议
大地的一角11 小时前
(计算机网络)传输层协议原理
网络协议·计算机网络·udp
雨声不在11 小时前
IP路由表(ip rule)修改
网络·网络协议·tcp/ip