springboot部署到阿里云,阿里云配置https,ssl证书免费申请

最近在学习springboot,感觉springboot开发后台,提供api接口太方便了。简直是傻瓜式开发,一直都是本地在跑springboot项目。梦想着有一天,项目能在阿里云上跑。只有在阿里云上跑才是真正的java服务器项目。这里就带大家一起把springboot项目部署到阿里云,并且支持https

准备工作

阿里云ecs一个域名一个(我的是https://30paotui.com)ca证书一份(用来支持https)本地打包好的springboot项目。我这里用jar不用warftp客户端一个,用来把jar传到阿里云服务器上,我用的是filezilla客户端,可以百度下载。一,购买阿里云ecs配置安全组规则

如果不配置安全组规则,我们将没法访问我们阿里云服务器 ,下图中的80/80和443/443必须配置,因为只有这里配置了才能支持http和https访问我们的网站

阿里云安全组规则.png配置如下,授权对象哪里最好填0.0.0.0/0

添加安全组规则.png二,买域名

至于域名怎么买,我就不啰嗦了,不会的自行百度

30paotui.com我买的域名

域名.png

三,通过filezilla连接阿里云服务器,运行项目

ftp连接服务器.png

我在我的服务器home目录下新建一个jar文件,把打包好的springboot的jar包放到这里,我的是qcl80.jar

home:jar.png

然后就可以通过 java -jar qcl80.jar 运行springboot项目

运行springboot项目.png

注意:这样运行springboot项目,如果你关闭当前shell窗口,就会导致服务器的springboot关闭。因为我们现在用的是springboot自带的tomcat,不能在后台运行。

springboot生成的jar在阿里云的linux服务器后台运行,不会在shell客户端关闭时关闭

后台运行脚本.png

通过创建stop.sh , start.sh ,run.sh这三个脚本文件来实现后台长久运行springboot

这里我把运行的qcl80.jar ,start .sh,stop.sh ,run.sh都放在home下的jar目录下

1,创建stop.sh

vim stop.sh 创建文件然后把下面内容复制进去,一定要把qcl80.jar替换成你的jar

#!/bin/bash

PID=$(ps -ef | grep qcl80.jar | grep -v grep | awk '{ print $2 }')

if [ -z "$PID" ]

then

echo Application is already stopped

else

echo kill $PID

kill $PID

fi

2,创建start.sh,这里我们用80端口,这样可以直接通过ip访问,不用再输端口了

vim start.sh 输入这个命令后然后把下面的内容复制进去

#!/bin/bash

nohup java -jar qcl80.jar --server.port=80 &

3,创建run.sh

整合了关闭和启动的脚本:run.sh,由于会先执行关闭应用,然后再启动应用,这样不会引起端口冲突等问题,适合在持续集成系统中进行反复调用。

把下面内容复制进去,一定要注意复制时不能少东西

#!/bin/bash

echo stop application

source stop.sh

echo start application

source start.sh

4,start .sh,stop.sh ,run.sh都创建后

./run.sh 运行run.sh脚本

如果遇到没有权限运行的问题,就在run.sh所在目录下执行

chmod u+x *.sh 这样就ok了。

执行完以后,我们可以去nohup.out文件中查看启动的log

cat nohup.out 这个命令可以查看jar启动的log

run.sh启动jar项目.png

到此我们的springboot项目就启动了,可以通过你阿里云的公网ip访问你的网站了

ip访问.png

https访问.png

由于我配置了https,所以这里用IP访问会显示不安全,接下来给大家讲解怎么配置https访问。

四,配置https

1,申请阿里云免费的ca证书,ca证书是实现https必不可少的

ca证书购买.png

ca免费购买.png

ca补全信息.png

通常审核10分钟左右就行,如果资料不全或者不真实可能就久些。

购买完ca证书,并且审核通过后,就去下载相应的ca证书,由于我们springboot内置的是tomcat,所以我们这里下载tomcat对于的ca证书

下载证书.png下载后解压

pfx证书.png

然后在我们的springboot配置文件中配置

ca配置.png

注意:214590826650132.pfx还需要在我们能阿里云的home/jar目录下放一份,即和我们的打包jar放在同一个目录下

ca证书放到阿里云.png

HTTP自动转向HTTPS

实现http转https就是我们访问

30paotui.com

www.30paotui.com

http://30paotui.com

http://www.30paotui.com

都会指向https://30paotui.com

实现上面的功能需要我们在springboot的application中配置如下代码package com.qcl;

import org.apache.catalina.Context;

import org.apache.catalina.connector.Connector;

import org.apache.tomcat.util.descriptor.web.SecurityCollection;

import org.apache.tomcat.util.descriptor.web.SecurityConstraint;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;

import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;

import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;

import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;

import org.springframework.context.annotation.Bean;

@SpringBootApplication

public class SellApplication implements EmbeddedServletContainerCustomizer {

public static void main(String[] args) {

SpringApplication.run(SellApplication.class, args);

}

//拦截所有请求

@Bean

public EmbeddedServletContainerFactory servletContainer() {

TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {

@Override

protected void postProcessContext(Context context) {

SecurityConstraint constraint = new SecurityConstraint();

constraint.setUserConstraint("CONFIDENTIAL");

SecurityCollection collection = new SecurityCollection();

collection.addPattern("/*");

constraint.addCollection(collection);

context.addConstraint(constraint);

}

};

tomcat.addAdditionalTomcatConnectors(httpConnector());

return tomcat;

}

//配置http转https

@Bean

public Connector httpConnector() {

Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL);

connector.setScheme("http");

//Connector监听的http的端口号

connector.setPort(80);

connector.setSecure(false);

//监听到http的端口号后转向到的https的端口号

connector.setRedirectPort(443);

return connector;

}

//这里设置默认端口为443,即https的,如果这里不设置,会https和http争夺80端口

@Override

public void customize(ConfigurableEmbeddedServletContainer container) {

container.setPort(443);

}

}

至此,我们的springboot就可以在阿里云上运行了,同时支持http和https的访问

原文地址:https://www.toutiao.com/article/6680468790821519876/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原理介绍,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。传统事务中回滚点的使...
今天小编给大家分享的是一文解析spring中事务的传播机制,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区别,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Spring Cloud Netfli...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。第一步:整合pom文件,在S...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。List 坑列表 = new ArrayList(2);...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓存的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇...
本篇内容主要讲解“Spring中的@Autowired和@Resource注解怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学...
今天小编给大家分享一下SpringSecurity怎么定义多个过滤器链的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家
这篇文章主要介绍“Spring的@Conditional注解怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring的@Con...
这篇文章主要介绍了SpringCloudGateway的熔断限流怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringCloud&nb...
今天小编给大家分享一下怎么使用Spring解决循环依赖问题的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考
这篇文章主要介绍“Spring事务及传播机制的原理及应用方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Sp...
这篇“SpringCloudAlibaba框架实例应用分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价
本篇内容主要讲解“SpringBoot中怎么使用SpringMVC”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习...
这篇文章主要介绍“SpringMVC适配器模式作用范围是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringMVC
这篇“导入SpringCloud依赖失败如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家...
这篇文章主要讲解了“SpringMVC核心DispatcherServlet处理流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来
今天小编给大家分享一下SpringMVCHttpMessageConverter消息转换器怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以...
这篇文章主要介绍“Spring框架实现依赖注入的原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring框架...
本篇内容介绍了“Spring单元测试控制Bean注入的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下