如何让springboot打包的项目部署在阿里云上使用https和http方式访问

摘要:
无效的:!aNULL:!MD5:!注意:!

前言

问题描述:怎么让springboot部署在服务器上使用https协议方式访问我们的接口或者域名,目的是某些平台请求的是https协议,而不是https

部署环境:阿里云 centos7服务器,springboot项目打包的jar,nginx反向代理

注:部署前需要解决几个问题

1)需要配置springboot项目支持https协议,

2)需要配置阿里云的安全组,放行相关的端口,如本文中开放的8080和8081端口

3)配置nginx的nginx.conf文件做好反向代理

4)申请ssl文件,至于怎么申请ssl文件自行百度(注:因为springboot启动项目的时候使用的是tomcat,我们部署的时候需要nginx做好反向代理,所以这里面我们需要两个类型的ssl文件,即nginx下面的xxx.pem/xxx.key和tomcat下面的xxx.pfx/xxx.txt文件,xxx.txt里面保存的是密码)

如何让springboot打包的项目部署在阿里云上使用https和http方式访问第1张

                                (图1)

如何让springboot打包的项目部署在阿里云上使用https和http方式访问第2张

                               (图2)

 5)把申请的ssl里面的pfx文件方向项目的根目录下,如下图

如何让springboot打包的项目部署在阿里云上使用https和http方式访问第3张

步骤:

1.配置本地项目xxx.yml文件,如下图

如何让springboot打包的项目部署在阿里云上使用https和http方式访问第4张

相关的代码如下

server:
servlet:
#配置访问的项目路径
context-path: /
#配置HTTPS访问端口
port: 8443
ssl:
enabled: true
key-store: xxx.pfx
key-store-password: 123456
#配置http访问端口
http:
port: 8080

2.配置启动项,即在启动项里面增加如下代码,这里可以配置通知支持http和https
import org.apache.catalina.connector.Connector;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;


@SpringBootApplication
@MapperScan(value = "xxx.mapper")
public class SitecloudApplication {
public static void main(String[] args) {
SpringApplication.run(SitecloudApplication.class, args);
}
// springboot2 写法
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
return tomcat;
}

// 配置http
private Connector createStandardConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(8080);//nginx需要代理的端口,这里我直接写固定了,这里的端口是yml文件中的8080端口,你可以直接取yml文件的端口
return connector;
}

}
3.配置阿里云的安全组,放行相关的端口

如何让springboot打包的项目部署在阿里云上使用https和http方式访问第5张

  4.配置nginx

进入你安装的nginx目录里面xxx/conf/nginx.conf文件中,配置如下

#https支持
server {
listen 443 ssl;
server_name 你的域名不需要在前面加http;
ssl on;
ssl_certificate /ssl/xxx.pem;
ssl_certificate_key /ssl/xxx.key;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

location /images/{
root /usr/;
autoindex on;
}

location /app {
root html;
index index.html index.htm;
proxy_pass http://ip:8080;
}
}

server {
listen 80;
server_name 你的域名不需要在前面加http;

rewrite ^(.*)$ https://$host$1 permanent;
}


}

 5.springboot本地打成xxx.jar文件,放入在linux中你新建的任何文件夹中

 6.把你申请的ssl的xxx.pfx,xxx.pem,xxx.key文件放在和你的jar一个目录的地方

如何让springboot打包的项目部署在阿里云上使用https和http方式访问第6张

7.运行java -jar xxx.jar

8.在nginx的sbin文件夹下启动nginx

./nginx -s reload

./nginx -t

10.访问项目,直接用域名访问的方式如https://xxx.com:8443

如何让springboot打包的项目部署在阿里云上使用https和http方式访问第7张

访问http:xxx.8080

如何让springboot打包的项目部署在阿里云上使用https和http方式访问第8张

至此,项目运行成功,转载请留下出处

免责声明:文章转载自《如何让springboot打包的项目部署在阿里云上使用https和http方式访问》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux下解压.zip压缩包出现乱码的问题解决linux下/dev/null被误删下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Springboot 返回 jsp

1、配置pom.xml 1 <!--配置jsp jstl的支持--> 2 <dependency> 3 <groupId>javax.servlet</groupId> 4 <artifactId>jstl...

安装folly库以及folly的ConcurrentHashMap的简单使用

我在写grpc的实例时, 需要使用一个多线程的hash map, C++标准库中没有多线程的hash map, facebook开源的folly中存在大量的基础类, 中间存在一个高性能的hash map,这个正是我所需要的, 所以在这里简介一下folly库, 按照官方说明, folly库安装需要gcc 5.1+ 和支持C++14的编译器编译的boost....

Charles的使用

Charles 通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。 除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用的通讯协议。配合 Charles 的 SSL 功能,Charles 还可以分析 Https 协议。 Charles 主要的功能包括: 截取 Http 和 Ht...

Go语言开发环境安装

Go语言(Golang) 由Google 的 Robert Griesemer,Rob Pike 和 Ken Thompson 推出,Go语言具有并发性,可以快速编译机器码,自动垃圾回收,是一种静态强类型、编译型语言。由于Go语言的并发特性,非常适用于Web 服务器、分布式集群计算、云计算、游戏服务端等的开发。在区块链(如以太坊,Ethereum)、容器(...

Ubuntu18.04下strongSwan配置

1、官网下载strongswan strongswan-5.8.4.tar.gz 2020/03/29, size 7'282'749 bytes,pgp-signature,md5:d97e8eeb4fc0223f0d6fb331c4d2bcce 链接:https://www.strongswan.org/download.html 2、编译和安装 ta...

下载android的linux内核的方法

1、安装git android的linux内核可以从http://android.git.kernel.org/下载,但下载需要使用git,windows版的git可以从http://code.google.com/p/msysgit/下载,有完全安装版和便携版(portable)两个版本可供选择,不常用git的话选portable版就可以了。 下载por...