解决前后端分离项目部署SSL证书后前端页面出现的一些问题

#部署SSL证书后可能会遇到的问题

  • 前段页面正常显示,访问不了后端接口
  • 浏览器报错提示 the content must be served over https
  • 接口地址换成https之后 又提示 net::ERR_SSLPROTOCOL_ERROR
  • nginx配置反向代理到后端地址会出现 404访问不到页面

#解决办法

思路
浏览器提示在https页面不能发送http请求那就把http请求变成https请求
解决问题
  • 为后端(我这里后端用的是springboot作为后盾)下载ssl证书,并部署,ssl证书可以到云服务商下载,下载时要根据自己后端的服务器下载,我这里用的是tocmat,下载对应的证书。

tocmat下载的证书里有两个文件一个是jks的秘钥文件(这个格式自己可以选择),还一个就是密码(如果申请ssl证书时没有设置它就会生成随机密码)把jks文件拷贝到资源目录

server:
  port: 8080 //这里是端口号(自定义)
  ssl:
    key-store: classpath:证书名称 //key-store是证书得路径 
    key-store-type: JKS  //证书格式,对应填写
    key-store-password: 密码 //填写生成的密码

启动之后就可以用https访问了,但http请求发送不了请求,想要同时想要http and https可以看下面(在启动类中配置)

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

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        //Connector监听的http的端口号
        connector.setPort(填写http端口);
        connector.setSecure(false);
        //监听到http的端口号后转向到的https的端口号
        connector.setRedirectPort(写https端口);
        return connector;
    }

#注意事项

Springboot配置ssl证书时可能会出错,遇到问题可以先mvn clear一下在次运行基本上都可以解决
配置完后本地运行访问https浏览器或postman测试工具会出现提示信息,因为你的ssl证书时绑定域名的,本地运行会提示不安全连接,这种情况忽略即可,上传服务器后不会出现

后端部署之后前段就可以向后端接口发送请求了

博客地址:徐启君的个人博客 xqijun.top

前后端分离项目部署到Amazon Elastic Compute Cloud (EC2)涉及几个关键步骤: 1. **环境准备**: - 创建EC2实例:选择适合的实例类型,通常选择Linux(如Ubuntu或CentOS)作为服务器操作系统。 - 安装必要的基础工具:包括SSH、Git、Node.js(如果后端是Node.js)、Nginx等。 2. **构建和打包应用**: - 前端:使用构建工具如Webpack或Gulp打包前端代码,生成静态文件。 - 后端:确保后端应用已经构建完成并准备好部署。 3. **配置域名和SSL**: - 如果需要,购买一个域名并在AWS中配置DNS解析,将域名指向EC2实例的公共IP地址。 - 使用AWS Certificate Manager (ACM)获取SSL证书,并将其绑定到域名。 4. **部署后端**: - 将后端代码上传至EC2,可以使用SCP或S3同步,然后在服务器上安装依赖并运行服务。 - 设置环境变量,如数据库连接信息。 5. **部署前端**: - 将打包后的前端静态文件上传到EC2实例的Web根目录,通常是`/var/www/html`。 - 配置Nginx做反向代理,将请求转发给前端静态目录或后端API。 6. **设置负载均衡**: - 如果有高流量需求,可以使用Amazon Elastic Load Balancer (ELB)分发请求到多个实例,提供冗余和高可用性。 7. **监控和安全**: - 安装并配置日志系统,如Logstash、Fluentd或CloudWatch Logs,监控应用运行状况。 - 确保应用安全,使用防火墙规则限制访问,并启用AWS的安全组策略。 8. **自动化部署**: - 可能需要设置CI/CD流程,如使用GitHub Actions或AWS CodePipeline,以自动化代码提交后的部署过程。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值