小程序后端项目【Springboot框架】部署到阿里云服务器【支持https访问】
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了小程序后端项目【Springboot框架】部署到阿里云服务器【支持https访问】,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3768字,纯文字阅读大概需要6分钟。
内容图文
前言:
我的后端项目是Java写的,用的Springboot框架。在部署服务器并配置https访问过程中,因为做了一些令人窒息的操作(事后发现),所以老是不能成功。
不成功具体点说就是:域名地址可以正常访问(http/https均可),而部署在服务器上的API仍然只能通过http访问,通过https访问会显示不安全连接!
通过提交工单,得到阿里云工作人员的帮助,他们给出了答案:
然后我想,我好像知道是咋回事了呢。
1. Springboot框架是内嵌有tomcat的!!我只是把项目打成Jar包放到了我配置在服务器上的tomcat的webapps下,然后手动通过命令来运行程序。所以我用的还是内嵌的tomcat。
2. 我从阿里云上下载的SSL证书直接配置在服务器的tomcat上,所以它自然而然就跟我写的接口没啥关系了。
问题解决:
先思考一个问题:到底准备用Springboot内嵌的tomcat还是用服务器上的外部tomcat?
所以我无外乎两条路走:
1. 内嵌tomcat:在Springboot项目中直接配置SSL证书,使其可以通过https被访问;项目依然以Jar形式在服务器被运行。
2. 外部tomcat:剔除Springboot项目中的内嵌tomcat,修改项目相关配置,将其打成War包放到服务器的tomcat下加载运行。
实践:
前提:1. 无论哪种方式,都需要先在服务器上下载安装好Java环境哦(⊙o⊙);
2. 准备好SSL证书!阿里云买域名就送了免费的证书,下载tomcat对应的证书文件!
方式一:使用内嵌tomcat部署程序 -- Jar包方式运行
参考文章:https://blog.csdn.net/qiushi_1990/article/details/79915880
1. 将在阿里云下载好的SSL证书文件(.pfx格式)和密码文件,先放到src/main/resource文件夹下,再在项目下application.properties文件中配置证书信息。
2. 在Springboot启动程序中修改增加一些信息,如下:
1 import org.apache.catalina.Context; 2 import org.apache.catalina.connector.Connector; 3 import org.apache.coyote.http11.Http11NioProtocol; 4 import org.apache.tomcat.jni.File; 5 import org.apache.tomcat.util.descriptor.web.SecurityCollection; 6 import org.apache.tomcat.util.descriptor.web.SecurityConstraint; 7 import org.springframework.boot.SpringApplication; 8 import org.springframework.boot.autoconfigure.SpringBootApplication; 9 import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; 10 import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; 11 import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; 12 import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; 13 import org.springframework.context.annotation.Bean; 14 import org.springframework.core.io.ClassPathResource; 15 16 @SpringBootApplication 17 public class HappyseatApplication implements EmbeddedServletContainerCustomizer { 18 19 public static void main(String[] args) { 20 SpringApplication.run(HappyseatApplication.class, args); 21 } 22 23 // 根据spring boot 1.5.X以下版本,添加这个!注意,版本不同添加的不一样↓↓↓↓ 24 @Bean 25 //拦截所有请求 26 public EmbeddedServletContainerFactory servletContainer() { 27 TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); 28 tomcat.addAdditionalTomcatConnectors(httpConnector()); // 添加http 29 return tomcat; 30 } 31 // 根据spring boot 1.5.X以下版本,添加这个!注意,版本不同添加此方法有所不同 ↑↑↑↑ 32 33 //配置http转https 34 @Bean 35 public Connector httpConnector() { 36 Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL); 37 connector.setScheme("http"); 38 //Connector监听的http的端口号 39 connector.setPort(80); 40 connector.setSecure(false); 41 //监听到http的端口号后转向到的https的端口号 42 connector.setRedirectPort(443); 43 return connector; 44 } 45 46 //这里设置默认端口为443,即https的,如果这里不设置,会https和http争夺80端口 47 @Override 48 public void customize(ConfigurableEmbeddedServletContainer container) { 49 container.setPort(443); 50 } 51 52 53 }
3. 直接用 eclipse生成Jar包
内容总结
以上是互联网集市为您收集整理的小程序后端项目【Springboot框架】部署到阿里云服务器【支持https访问】全部内容,希望文章能够帮你解决小程序后端项目【Springboot框架】部署到阿里云服务器【支持https访问】所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。