为什么80%的码农都做不了架构师?>>> hot3.png

获取证书

https 是加密链接. 是需要证书的. 那么证书从哪里取得呢? 在本地测试的时候, 可以自己生成一个 tomcat 的证书, 可以本地测试用.

生成方式配置方式见下面

tool -genkey -v -alias mykey -keyalg RSA -validity 3650 -keystore ./keystore

在yml配置如下

server.port:8443
server.ssl.key-store: classpath:keystore.p12
server.ssl.key-store-password: xxxxx
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat

但是本地生成的证书在生产环境是没法用的. 第三方调用的时候是不 OK 的.
于是, 在阿里云上找到了免费的证书申请.

购买后, 会有邮件发到注册邮箱来认证的. 当然, 这里要注意这个免费的证书只能用在一个域名下.
(不知道为什么用公司邮箱和个人邮箱, 这里给出的认证方式不同. )

spring boot 配置

证书生成好之后, 下载之. 然后放在resources目录下. 和 application.properties 并列.

阿里云这个下载下来默认是pfx 格式的. 按照下面这样配置就行:

server.ssl.key-store=classpath:1111111.pfx
server.ssl.key-store-password=1111111
server.ssl.keyStoreType=PKCS12  

因为是生产环境, 需要做 http 自动转到 https. 所以这里不配置端口号.

http 自动转到 https

生产环境上 http 转到 https 是一个很必要的能力. 在 spring boot 的启动类中. 添加如下代码即可 ```

package wang.vchen.handling.config;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.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/*** @Auther Vchen* @Description:* @Date: 20:56 2017/6/20.* @Modified:*/
@Configuration
public class HttpsConfig {@Beanpublic EmbeddedServletContainerFactory servletContainer() {TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(){//1protected void postProcessContext(Context context) {SecurityConstraint securityConstraint = new SecurityConstraint();securityConstraint.setUserConstraint("CONFIDENTIAL");SecurityCollection collection = new SecurityCollection();collection.addPattern("/*");securityConstraint.addCollection(collection);context.addConstraint(securityConstraint);}};tomcat.addAdditionalTomcatConnectors(httpConnector());return tomcat;}@Beanpublic Connector httpConnector(){Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");connector.setPort(8080);//表示用8080端口来供http访问connector.setSecure(false);connector.setRedirectPort(8090);//自动重定向到8090端口return connector;}
}

这样就可以实现 HTTPS 了

如果是测试环境的证书,浏览器可能会拦截,说是不安全的,需要将浏览器设置一下。

转载于:https://my.oschina.net/kingchen8080/blog/994367

spring boot 中启用 https相关推荐

  1. springboot转发http请求_Spring Boot2 系列教程(八)Spring Boot 中配置 Https

    https 现在已经越来越普及了,特别是做一些小程序或者公众号开发的时候,https 基本上都是刚需了. 不过一个 https 证书还是挺费钱的,个人开发者可以在各个云服务提供商那里申请一个免费的证书 ...

  2. 在Spring Boot中启用Http2.0

    HTTP2.0特性 通俗易懂篇:https://www.cnblogs.com/yingsmirk/p/5248506.html 深入了解篇:https://www.jianshu.com/p/67c ...

  3. Spring Boot 中启用异步调用

    在Java中一般开发程序都会同步调用的,程序中代码是一行一行执行下去的,每一行代码需要等待上一行代码执行完成才能开始执行. 在异步编程中,代码执行不是阻塞的,在方法调用中不需要等待所有代码执行完毕就可 ...

  4. SpringBoot精通系列-Spring Boot中如何配置Https

    导语    Https作为一个比较安全的协议,现在已经越来越普及了,特别是在完成小程序或者是公众号开发的时候,https基本上都是刚需了.但是一个HTTPS的证书是比较费钱的事情,个人开发者可以通过云 ...

  5. 使用Spring Security在Spring Boot中进行缓存

    在这篇文章中,我想分享一下O&B的一个团队的经验教训. 他们正在使用带有Spring Security的Spring Boot. 默认情况下,Spring Security保护的所有内容都将通 ...

  6. Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代理的问题

    Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代理的问题 参考文章: (1)Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代 ...

  7. Spring Boot中使用AOP统一处理Web请求日志

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是Spring框架中的一个重要内容,它通 ...

  8. 在spring boot中集成Swagger

    Swagger 在spring boot中集成Swagger 新建一个swagger项目 maven依赖 <!-- https://mvnrepository.com/artifact/io.s ...

  9. Spring Boot 中使用 Swagger2 构建强大的 RESTful API 文档

    项目现状:由于前后端分离,没有很好的前后端合作工具. 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型.HTTP头部信息.HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下 ...

最新文章

  1. Spark官方文档——本地编写并运行scala程序
  2. mailmessage html编码,C#MailMessage顯示HTML標記的AlternateViews
  3. boost::mp11::mp_with_index相关用法的测试程序
  4. 《C#编程风格》还记得多少
  5. matlab如何实现降维,matlab怎么把矩阵降维
  6. 在电脑上显示未知发布者怎么办_电脑开机后显示器黑屏只有鼠标能动,怎么办呢?...
  7. AllenNLP—笔记—TokenEmbedder
  8. 通用Excel库存管理系统 最好用的Excel出入库管理表格 带VBA源代码,代码公开【亲测非常好用】
  9. 三维扫描仪中投射模块/投影仪推荐
  10. S7-200PLC寄存器寻址
  11. 风暴数码论坛教程--官方和第三方ROM的提取与分解
  12. Ayla艾拉物联基于AWS构建IoT艾拉云
  13. 黑马程序员—String类常用方法
  14. 7-10 公路村村通 (最小生成树Prim算法) | PTA数据结构与算法——C语言实现
  15. php变量输出的几种方式
  16. SAAS-HRM-day1
  17. 2019年广东工业大学腾讯杯新生程序设计竞赛(同步赛)E-缺席的神官
  18. STC8A,STC8G,STC8H系列的IRC内部振荡源频率调节
  19. MFC隐藏进程自身(任务管理器不可见,wSysCheck等工具可见)
  20. hadoop2.8.2 YARN 架构

热门文章

  1. iOS设计模式 - 组合
  2. 对于反射的一些总结(一)
  3. 网上看到的一道题,分享一下
  4. SharePoint中的富文本编辑器控件
  5. C# 快速高效率复制对象另一种方式 表达式树
  6. 操作XML 报错:根级别上的数据无效 和 给定编码中的字符无效 解决办法
  7. uni-app实现微信小程序本地图片转为base64
  8. echars x轴单位_echarts X轴和Y轴 坐标没有 一一对应
  9. python编程基础 张健 pdf_Python编程基础
  10. Linux网络不可达解决方法