SpringBoot2.0之后,启用https协议的方式与1.*时有点儿不同,贴一下代码。

  我的代码能够根据配置参数中的condition.http2https,确定是否启用https协议,如果启用https协议时,会将所有http协议的访问,自动转到https协议上。

一、启动程序

  1. package com.wallimn.iteye.sp.asset;
  2. import org.apache.catalina.Context;
  3. import org.apache.catalina.connector.Connector;
  4. import org.apache.tomcat.util.descriptor.web.SecurityCollection;
  5. import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.boot.SpringApplication;
  8. import org.springframework.boot.autoconfigure.SpringBootApplication;
  9. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  10. import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
  11. import org.springframework.context.annotation.Bean;
  12. /**
  13. * SpringBoot2.0启动程序
  14. * @author wallimn,http://wallimn.iteye.com
  15. *
  16. */
  17. @SpringBootApplication
  18. public class AssetApplication {
  19. public static void main(String[] args) {
  20. SpringApplication.run(AssetApplication.class, args);
  21. }
  22. //如果没有使用默认值80
  23. @Value("${http.port:80}")
  24. Integer httpPort;
  25. //正常启用的https端口 如443
  26. @Value("${server.port}")
  27. Integer httpsPort;
  28. // springboot2 写法
  29. @Bean
  30. @ConditionalOnProperty(name="condition.http2https",havingValue="true", matchIfMissing=false)
  31. public TomcatServletWebServerFactory servletContainer() {
  32. TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
  33. @Override
  34. protected void postProcessContext(Context context) {
  35. SecurityConstraint constraint = new SecurityConstraint();
  36. constraint.setUserConstraint("CONFIDENTIAL");
  37. SecurityCollection collection = new SecurityCollection();
  38. collection.addPattern("/*");
  39. constraint.addCollection(collection);
  40. context.addConstraint(constraint);
  41. }
  42. };
  43. tomcat.addAdditionalTomcatConnectors(httpConnector());
  44. return tomcat;
  45. }
  46. @Bean
  47. @ConditionalOnProperty(name="condition.http2https",havingValue="true", matchIfMissing=false)
  48. public Connector httpConnector() {
  49. System.out.println("启用http转https协议,http端口:"+this.httpPort+",https端口:"+this.httpsPort);
  50. Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
  51. connector.setScheme("http");
  52. //Connector监听的http的端口号
  53. connector.setPort(httpPort);
  54. connector.setSecure(false);
  55. //监听到http的端口号后转向到的https的端口号
  56. connector.setRedirectPort(httpsPort);
  57. return connector;
  58. }}

二、配置文件

1.使用http协议时的配置 
server.port=80

2.使用https及http协议时的配置 
server.port=443 
server.ssl.key-store=classpath:keystore.p12 
server.ssl.key-store-password=your-password 
server.ssl.keyStoreType=PKCS12 
server.ssl.keyAlias=your-cert-alias 
condition.http2https=true 
http.port=80

pringBoot2.0启用https协议的更多相关文章

  1. 【转】Tomcat启用HTTPS协议配置过程

    转载请注明出处: http://blog.csdn.net/gane_cheng/article/details/53001846 http://www.ganecheng.tech/blog/530 ...

  2. Tomcat启用HTTPS协议配置过程

    Article1较为简洁,Article2较为详细,测试可行. Article1 概念简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问 ...

  3. 启用https协议的方法

    提醒:启用https协议会降低服务器性能,如非必要不必启用 一.用openssl生成密钥.证书: 1.生成RSA密钥的方法 openssl genrsa -out privkey.pem 2048 建 ...

  4. mod_cluster启用https协议的步骤

    1.生成SSL证书与私钥 Generate Private Key on the Server Running Apache + mod_ssl First, generate a private k ...

  5. JBoss集群中启用HTTPS协议

    Generate server certificate Note: If you already have certificate created then this section can be i ...

  6. 4、Tomcat启用HTTPS协议配置

    一.本地模拟 1.安装jdk,自行百度安装教程 2.打开mac终端,输入命令 keytool -genkeypair -alias "证书名字" -keyalg "RSA ...

  7. IIS中如何应用程序启用https协议

    首先已经安装完了SSL证书 1.找到需要添加的站点,右击 ---> 编辑绑定-->添加--->选择  ""https"-->选择"SSL ...

  8. 阿里云服务器IIS启用HTTPS协议(转)

    https://www.cnblogs.com/randytech/p/7017188.html

  9. tomcat 启用https协议

    利用tomcat服务器配置https双向认证. 1.为服务器生成证书 打开cmd,进入jdk的bin目录下,输入下面的命令: keytool -genkey -v -alias tomcat -key ...

随机推荐

  1. 集合运算 & 聚合函数

    SQL 查询之集合运算 & 聚合函数   1.集合运算 1.1.并集运算 UNION 1.2.差集运算 EXCEPT 1.3.交集运算 INTERSECT 1.4.集合运算小结 2.聚合函数 ...

  2. Linux题库练习

    转一个Linux的题库供自己学习使用(滑稽) 转自:http://www.linuxdiyf.com/view_202485.html 选择题1 在终端下输入mount -a命令的作用是:CA 强制进 ...

  3. Maven工具-简介

    Maven工具-简介 定义 ①maven是一款服务于java平台的自动化构建工具 make→Ant→maven→Gradle ②构建 [1]概念:以"java源文件"." ...

  4. 兔子问题(Rabbit problem)

    Description 有一种兔子,出生后一个月就可以长大,然后再过一个月一对长大的兔子就可以生育一对小兔子且以后每个月都能生育一对.现在,我们有一对刚出生的这种兔子,那么,n 个月过后,我们会有多少 ...

  5. SUPPA 可变剪切分析

      SUPPA是一款通过转录本定量来获取可变剪切定量结果的软件.转录本的定量方式有很多,例如count,FPKM, TPM等,作者建议使用TPM,因为先均一化了基因的长度,然后均一化了测序的深度.同时 ...

  6. 字段自动递增的数据库建表的SQL写法

    数据库建表的SQL写法如下: 数据库建表的SQL写法如下: create table dataC(  a int identity(1,2) primary key,  b varchar(20)) ...

  7. 018 Android Activity界面移入与移出的动画效果

    1.平移动画 上一页移入动画 (-屏幕宽度,y)------>(0,y) 上一页移出动画 (0,y)-------------->(屏幕宽度,y) 下一页移入动画 (屏幕宽度,y)---- ...

  8. mysql 添加大量测试数据

    mysql 添加大量测试数据 场景 针对于大量测试数据插入,检测sql执行速度 第一步:建表 // 测试表 CREATE TABLE user ( id int(11) NOT NULL AUTO_I ...

  9. python爬取盘搜的有效链接

    因为盘搜搜索出来的链接有很多已经失效了,影响找数据的效率,因此想到了用爬虫来过滤出有效的链接,顺便练练手~ 这是本次爬取的目标网址http://www.pansou.com,首先先搜索个python, ...

  10. 彻底关闭networkmanager

    chkconfig NetworkManager offsystemctl stop NetworkManagersystemctl disable NetworkManager