前言

问题描述:怎么让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里面保存的是密码)

(图1)

(图2)

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

步骤:

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

相关的代码如下

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.配置阿里云的安全组,放行相关的端口

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一个目录的地方

7.运行java -jar xxx.jar

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

./nginx -s reload

./nginx -t

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

访问http:xxx.8080

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

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

  1. 如何把php项目部署到阿里云服务器window server2012__含公网ip访问时jquery/ajax失效解决办法

    记一次蛋疼的折腾. 弄了一晚上最后发觉是360浏览器的问题,换个浏览器就好了.垃圾360用什么IE7文档模式.导致界面和功能失效. 建议大家测试的时候用firefox或者chrome. 项目部署到服务 ...

  2. spring boot 项目部署在阿里云上

    装jdk, 然后 nohup java -jar xxxx.jar> system.log 2>&1 & lsof -i:9999 kill -9 1234

  3. javaWeb项目部署到阿里云服务器步骤

    记录web项目部署到阿里云服务器步骤 (使用 web项目.阿里云服务器.Xftp.Xshell),敬请参考和指正 1.将要部署的项目打包成WAR文件格式,可以在MyEclipse.Eclipse都可以 ...

  4. javaWeb项目部署到阿里云服务器步骤 完整版

    记录web项目部署到阿里云服务器步骤 (使用 web项目.阿里云服务器.Xftp.Xshell),敬请参考和指正 1.将要部署的项目打包成WAR文件格式,可以在MyEclipse.Eclipse都可以 ...

  5. Java Web项目部署到阿里云服务器(ECS)

    本篇随笔只是记录博主第一次将自己的Java项目部署到阿里云服务器的大致过程,具体细节还请参考别的博文. 一.项目介绍 我做的项目是利用maven项目构建工具进行搭建基于SSM框架的代码共享管理系统,主 ...

  6. flask项目部署到阿里云 ubuntu16.04

    title: flask项目部署到阿里云 ubuntu16.04 date: 2018.3.6 项目地址: 我的博客 部署思路参考: Flask Web开发>的个人部署版本,包含学习笔记. 开始 ...

  7. 2018.11.7 关于将Web项目部署到阿里云服务器-5个步骤搞定

    将Eclipse导出的War包部署到阿里云服务器上,提供给移动端实时的访问 1. 先登录阿里云网站注册账号,选择服务器类型(我用的是 云服务器ECS), 如果你还是在读大学生可享受优惠价,最低好像是9 ...

  8. Django项目部署到阿里云服务器无法发送邮件,发送邮件超时问题解决

    前言 今天, 博主将写了好久的一个Django小项目尝试在阿里云部署上线,由于项目中需要发送邮件,博主调用了163邮箱接口,在本地测试邮件功能正常,可是上线后,邮件功能一直超时崩溃.在百度一番查资料后 ...

  9. 将web项目部署到阿里云服务器上

    一.用eclipse将写好的项目打成war包 1.右键点击项目,选择Export 选择打包之后的路径,点击Finsh. 2.购买阿里云服务器 按下图选择 3.设置云服务器防火墙 4.远程连接云服务器 ...

随机推荐

  1. python基础练习 斐波那契数列

    转载于知乎刘奕聪的方法 一 f = [1, 1]print([f.append((f[-1] + f[-2])) or f.pop(0) for i in range(100)]) ///  f.ap ...

  2. 七、SQL 高级语法一

    Case when Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE ...

  3. 带新手玩转MVC——不讲道理就是干(上)

    带新手玩转MVC——不讲道理就是干(上) 前言:这几天更新了几篇博客,都是关于Servlet.JSP的理解,后来又写了两种Web开发模式,发现阅读量还可以,说明JSP还是受关注的,之前有朋友评论说JS ...

  4. vue.js带复选框表单的增删改查

    近段时间由于公司项目要求,前端开始使用VUE框架进行开发,最近刚开始学习,做了一个表单的增删改查,和大家分享一下. 页面模型代码设计如下 <template> <div id=&qu ...

  5. java - 如何使一个类不能被继承

    使用final关键字: 使用私有构造器: public final class InitTest{ private InitTest(){} }

  6. Java后台处理框架之struts2学习总结

    Java后台处理框架之struts2学习总结 最近我在网上了解到,在实际的开发项目中struts2的使用率在不断降低,取而代之的是springMVC.可能有很多的朋友看到这里就会说,那还不如不学str ...

  7. Cookie和Session的使用详解

    我们在使用接口请求时经常听到Cookie和Session的知识,那么它们的实际意义和使用场景在哪里呢 ?    介绍如下 一.首先需要了解的是为什么需要有Cookie和Session这两个东西:Htt ...

  8. win10去除快捷方式小箭头

    切忌删除注册表项: HKEY_CLASSES_ROOT -> lnkfile -> IsShortcut 这个方法以前是可以的,但是在2018年之后更新的系统就会出现任务栏图标打不开的情况 ...

  9. C#打开并选择特定类型文件并返回文件名

    public string[] GetOpenFileDialogReturnFileFullName(bool multiSelect = false)         {             ...

  10. istio入门教程

    广告 | kubernetes各版本离线安装包 安装 安装k8s 强势插播广告 三步安装,不多说 安装helm, 推荐生产环境用helm安装,可以调参 release地址 如我使用的2.9.1版本 y ...