SpringBoot
2021-12-26 16:46:19 5 举报
AI智能生成
学习期间老师分享的
作者其他创作
大纲/内容
web开发
给工程添加HTTPS支持
HTTPS简介
HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。
服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
解密、加密、验证原理图
分支主题
SSL
概念
(Secure Sockets Layer,安全套接层)
这是一种为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密。
SSL协议可以分为两层
SSL记录协议(SSL Record Protocol)
它建立在可靠的传输协议如TCP之上,为高层协议提供数据封装、压缩、加密等基本功能支持;
SSL握手协议(SSL Handshake Protocol)
它建立在SSL记录协议之上,用于在实际数据传输开始之前,通信双方进行身份认证、协商加密算法、交换加密密钥等。
证书生成
使用SSL需要我们先生成一个证书,这个证书我们可以自己生成,也可以从SSL证书授权中心获得,
自己生成的不被客户端认可,从授权中心获得的可以被客户端认可,提供SSL授权证书的服务商有很多,
使用Java命令keytool来生成证书
语法:keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365
1.-storetype 指定密钥仓库类型
2.-keyalg 生证书的算法名称,RSA是一种非对称加密算法
3.-keysize 证书大小
4.-keystore 生成的证书文件的存储路径
5.-validity 证书的有效期
操作步骤
1.将生成的证书文件放置于项目的根目录下
2.修改application.properties文件,添加HTTPS支持
在application.properties中添加如下代码:
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=111111
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias:tomcat
第一行指定签名文件,第二行指定签名密码,第三行指定密钥仓库类型,第四个是别名。
HTTP自动转向HTTPS
用户有可能继续使用HTTP来访问你的网站
需要添加HTTP自动转向HTTPS的功能,当用户使用HTTP来进行访问的时候自动转为HTTPS的方式。
在入口类中添加相应的转向Bean
http请求转向测试
访问http://localhost:8080
给tomcat添加HTTPS支持
windows平台
1.1 生成keystore文件
C:\Users\Administrator>keytool -genkey -alias tomcat -keyalg RSA
输入密钥库口令: 111111
再次输入新口令: 111111
您的名字与姓氏是什么?
[Unknown]: jeffrey
您的组织单位名称是什么?
[Unknown]: jeffreyhome
您的组织名称是什么?
[Unknown]: jeffreyhome1
您所在的城市或区域名称是什么?
[Unknown]: jeffreyhome2
您所在的省/市/自治区名称是什么?
[Unknown]: jeffreyhome2
该单位的双字母国家/地区代码是什么?
[Unknown]: cn
CN=tuhao, OU=tuhaojia, O=fnic, L=didu, ST=didu, C=cn是否正确?
[否]: y
输入 <tomcat> 的密钥口令
(如果和密钥库口令相同, 按回车): 直接按回车
完毕后会在当前目录下,会产生一个:.keystore文件
1.2 导出证书
a. 拷贝证书到tomcat的bin目录下
b. D:\Tomcat7\bin>keytool -selfcert -alias tomcat -keystore .keystore
c. 输入密钥库口令:(此处为上面生成证书时输入的111111)
d. D:\Tomcat7\bin>keytool -export -alias tomcat -keystore .keystore -storepass changeit -rfc -file tomcat.cer
e. 在D:\Tomcat7\bin>下生成tomcat.cer证书文件。
f. 将该文件发给使用者,让他们安装该证书,并将证书安装在“受信任的根证书颁发机构”区域中。
1.3 配置tomcat
打开$CATALINA_BASE/conf/server.xml 找到“SSL HTTP/1.1 Connector” 那一块
<Connector port="8443" protocol="HTTP/1.1"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="bin/.keystore" keystorePass="111111"
clientAuth="false" sslProtocol="TLS" />
linux平台
同上
Spring-data-jpa
Spring-MyBatis
0 条评论
下一页