前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot开发案例之集成SSL证书

SpringBoot开发案例之集成SSL证书

原创
作者头像
小柒2012
修改2018-03-30 18:53:56
1.3K3
修改2018-03-30 18:53:56
举报
文章被收录于专栏:IT笔记
tim1g.jpg
tim1g.jpg

SSL简介

SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

而基于B/S的web应用中,是通过https来实现SSL的。

timg.gif
timg.gif

HTTPS简介

HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。

接下来,我们开始在spring boot中使用ssl设置。

生成证书

使用SSL之前需要先生成一个证书,这个证书可以是自签名的(浏览器并不信任),也可以从SSL证书授权中心获取。下面为了演示方便,使用自授权证书。

每一个jdk或者jre中都有一个工具叫keytool,它是一个证书管理工具,可以用来生成自签名的证书。打开cmd,敲入命令:

代码语言:txt
复制
keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650

如图所示操作:

0.png
0.png

输入y执行成功以后会在目录下生成一个PKCS12格式的命名为keystore.p12的证书。

配置HTTPS

在application.yml加入以下配置:

代码语言:txt
复制
server:

    context-path: /springboot

    port: 8080

    session-timeout: 60

    tomcat:

      max-threads: 300

      uri-encoding: UTF-8

    ssl:

      key-store: classpath:keystore.p12

      key-store-password: 123456

      keyStoreType: PKCS12

最后,重启服务访问:https://localhost:8080/springboot

以下是360浏览器显示情况,由于是自签名,是不被浏览器信任的,但是可以看到颁发信息就是我们刚才录入的。

2.png
2.png

当然,tomcat做为一个后端服务,一般都是通过Nginx代理的方式去访问的,不会直接暴露给用户。

正常生产环境也很少这么去做,大家也就玩玩图个乐就ok了。

推荐阅读:阿里云盾证书服务助力博客装逼成功

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SSL简介
  • HTTPS简介
  • 生成证书
  • 配置HTTPS
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档