专栏首页IT笔记SpringBoot开发案例之集成SSL证书

SpringBoot开发案例之集成SSL证书

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的。

HTTPS简介

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

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

生成证书

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

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

keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650

如图所示操作:

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

配置HTTPS

在application.yml加入以下配置:

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浏览器显示情况,由于是自签名,是不被浏览器信任的,但是可以看到颁发信息就是我们刚才录入的。

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringBoot开发案例之集成SSL证书

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供...

    小柒2012
  • Struts2升级版本至2.5.10,高危漏洞又来了

    前情概要 漏洞年年有,最近特别多。2017年3月6日,Apache Struts2被曝存在远程命令执行漏洞,漏洞编号:S2-045,CVE编号:CVE-2017...

    小柒2012
  • Linux下使用rsync实现文件备份

    上一篇文章 Linux下使用ssh密钥实现无交互备份 这篇来说说如何安全的备份,还有一点不同的是上一篇是备份服务器拉取数据,这里要讲的是主服务器如何推送数据实现...

    小柒2012
  • SpringBoot开发案例之集成SSL证书

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供...

    小柒2012
  • mbed TLS 简明教程(三)

    程序手艺人
  • Netweaver 服务器和客户端TLS版本号不匹配的解决方案

    我今天用ABAP http API cl_http_client访问下面这个链接时:

    Jerry Wang
  • TLS与SSL的介绍及区别

    最近,Google要求Android下一个版本Android P 的应用程序,将默认使用加密连接,这意味着运行 Android P 系统的安卓设备无论是接收或者...

    安智客
  • rsync - Linux下进行文件同步命令

    rsync是Linux下进行文件同步到一个命令,可以同步两台计算机到文件与目录,利用查找文件中到不同块以减少数据传输。也可以在一台电脑到不同目录间同步,比如可以...

    小小科
  • Drools规则引擎Business Central Workbench版本变更

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    用户1161110
  • 一种全新的点击率建模方案

    ? 本文作者:branxu,腾讯 CDG 应用研究员 2018 年和 2019 年腾讯算法广告大赛都可以看做推荐系统问题。这类问题最重要的特征是点击率,最大的...

    腾讯技术工程官方号

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动