SpringBoot学习

075-Spring Boot 集成配置 HTTPS

2019-06-20  本文已影响2人  郭艺宾

一、HTTPS 是什么

问:什么是HTTP?

答:HTTP是一个客户端和服务器端请求和响应的标准TCP协议。

多了个 S,其实 S 表示 TLS、SSL。因此 HTTP 的基础架构如图所示:

HTTP协议(HyperText Transfer Protocol),即超文本传输协议是用于服务器传输到客户端浏览器的传输协议。Web上,服务器和客户端利用HTTP协议进行通信会话。那集成 HTTPS ,简单来说,修改 Tomcat 容器配置,加一层对应的安全约束配置即可。

二、免费 HTTPS

最简单的方式就是,采用java自带keytool工具生成,在这里,我们一般采用pkcs12格式的证书。网上还有一些阿里云或者其它免费的SSL证书的申请,可以自行查询。

先生成jks类型的证书:

keytool -genkey -alias demo -keyalg RSA -validity 36500 -keystore d:\demo.keystore

此时按照步骤提示,输入秘钥、组织、城市等信息,完成后最后键入:是,保存到本地。

按照建议应将jks转换为更符合国际标准的pkcs12格式的证书,接下来将之前的jks证书转换为pkcs12证书,当然你也可以一次性生成pkcs12格式证书,2种证书的分别生成便于在不同应用场景下使用。

keytool -importkeystore -srckeystore d:\demo.keystore -destkeystore d:\demo.keystore -deststoretype pkcs12

根据提示键入:证书秘钥,完成后再本地生成一个pkcs格式的证书,名字还是demo.keystore,原jks证书将自动另存为demo.keysotre.old文件,用于备份。

三、配置 HTTPS

新建一个springboot项目,使用1.5.x版本,注意新的2版本的配置方式发生了改变,如果学习可以自行查询。在springboot中引入一个web组件,添加一个接口即可。

把生成的证书放到resources目录下面,然后在配置文件中添加配置:

443是https默认的端口,如果被占用,可以修改。

最后配置https,新建一个HttpsConfig配置类:

四、测试访问 HTTPS 

启动项目,最后能看到启动信息中包含https:

按照原来的http访问接口,发现已经无法访问:

加上https的访问:

代码地址: https://gitee.com/blueses/spring-boot-demo

上一篇下一篇

猜你喜欢

热点阅读