A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张荫 于 2018-1-2 09:11 编辑

关于springboot 使用ssl   


我们平时开发的项目都是基于http协议的,那么我们还知道有一种https的协议,那么他们有什么区别呢?我们下面一起来分析下。


超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。


首先我们来看下什么是ssl:

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

SSL协议提供的服务主要有:
1、认证用户和服务器,确保数据发送到正确的客户机和服务器;
2、加密数据以防止数据中途被窃取;
3、维护数据的完整性,确保数据在传输过程中不被改变。

那么简单来说ssl 就是我们经常见到的以https开头的网站,而没有加密的就是http协议的网站了。也就是说使用https可以让我们开发的应用更加的安全可靠。

那么我们如何获取ssl的证书呢?

目前阿里,腾讯等互联网企业都有自己的云平台,我选择了腾讯云去注册自己的证书(注册证书前需要拥有自己的云服务器和域名)。腾讯云可以注册一个免费1年的ssl证书。




申请证书图




申请证书并且认证之后就可以下载了。


各种类型的证书


那么我们如何把我们的spring boot项目由http协议改成https呢?

我们知道,平时我们访问的是http协议,那么我们现在要访问https如何做呢?以及如何让我们访问http时跳转到https呢?我们一起往下看:

首先将.jks的证书导入到我们的项目中

并在properties文件中配置相应的端口以及密码


在Application中添加:

[Java] 纯文本查看 复制代码
@Bean
        public Connector httpConnector() {
                Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
                connector.setScheme("http");
                //Connector监听的http的端口号
                connector.setPort(80);
                connector.setSecure(false);
                //监听到http的端口号后转向到的https的端口号
                connector.setRedirectPort(443);
                return connector;
        }




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马