Spring MVC学习总结(5)——SpringMVC项目关于安全的一些配置与实现方式
目前越来越多的应用和网站,开始注重安全性的问题,关于我们的web项目的几个安全知识点,不得不讲解一下,这里我主要讲述关于tomcat如何支持HTTPS连接访问,RSA公钥和私钥的制作。这个对于我们整个系统的安全性都起了关键性作用。对于RSA的一些说明,以及Java的实现方法这个我将会在下一个章节介绍。
1、tomcat项目部署SSL安全连接。
这里涉及两个概念,单向认证和双向认证。
单向认证,就是client->sever发送数据 ,server收到数据用私钥对data加密,然后把加密的data和公钥给client,client通过公钥对数据加密发送到server,server用私钥解密,如果解密成功,说明是来自该服务器的.简单的来说,就是客户端发送带了公钥加密的数据给服务器验证,但是这个步骤是没有经过客户端的验证的。只是对服务器进行验证,所以我们单向的认证,只需要配置站点就可以了。
双向认证,就是client->server发送数据的时候,把数据加密后并且带上client自己的证书,发送给server,server收到后,用client带的证书,对消息解密,然后用sever的证书对消息加密并且把server的证书发送给client,client收到后,用sever的证书对信息解密。然后用server的证书加密,再用client的证书加密。这样再把client的证书和加密信息发送给server。server收到信息后,用client的证书进行解密,这样可以确保是有client发送过来的。然后再用server端的私钥对消息解密。这样就可以得到明文了。
安装环境 :java+tomcat+单向认证
1、首先创建一个keystore,这里注意就是我们需要安装好Java环境,
在终端输入如下命令:
keytool -genkey -v -alias yeehot -keyalg RSA -validity 3650 -keystore ./yeehot.keystore
这里的yeehot,是自定义的名字。以及保存到当前目录下
这个时候会提醒你创建密码的,接着你按照如下的方式和提示输入自己相应的信息
最后打一个字:是
按回车,完成操作。
对于tomcat配置
找到tomcat的conf目录,打开server.xml
找到原来已经注释的8443端口
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
然后我们根据这些信息改成我们自己的信息,我们首先把刚刚的keystore复制到这个文件夹下
<Connector SSLEnabled="true" acceptCount="100" clientAuth="false"
disableUploadTimeout="true" enableLookups="false" maxThreads="25"
port="8443" keystoreFile="./conf/yeehot.keystore" keystorePass="ming1314"
protocol="org.apache.coyote.http11.Http11NioProtocol" scheme="https"
secure="true" sslProtocol="TLS" />
这个时候我们启动tomcat
然后在服务器输入https://localhost:8443/可以看到下面的信息。说明我们配置成功了。可以访问https连接了。
我们点击下方的高级,可以访问tomcat的主页,此时也是使用HTTPS的连接的
2、RSA公私钥的制作。
首先,你必须按照openssl工具,并且编译,由于我这里是使用MAC系统,自带了openssl,直接输入openssl就可以了。
对于windows的可以直接去支付宝的商家服务那里下载一个二进制文件进行生成也行。如果找不到可以给我留言。
对于生成RAS公私钥主要有一下几个步骤。
生成RSA私钥
openssl>genrsa -out rsa_private_key.pem 1024
生成RSA公钥
openssl>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
将RSA私钥转换成PKCS8格式
openssl>pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
如何生成证书:
1)输入openssl
2)这个时候生成RSA私钥:
genrsa -out rsa_private_key.pem 1024
3)接着我们生成公钥
rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
4)将RSA私钥转换成PKCS8格式
这个时候在我们的目录下会生成我们需要的公钥和私钥
完整的操作如下:
Spring MVC学习总结(5)——SpringMVC项目关于安全的一些配置与实现方式的更多相关文章
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- Spring MVC学习笔记--认识SpringMVC
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框 ...
- 1.1(Spring MVC学习笔记)初识SpringMVC及SpringMVC流程
一.Spring MVC Spring MVC是Spring提供的一个实现了web MVC设计模式的轻量级Web框架. Spring优点:网上有,此处不复述. 二.第一个Spring MVC 2.1首 ...
- Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目
Spring MVC 学习笔记2 - 利用Spring Tool Suite创建一个web 项目 Spring Tool Suite 是一个带有全套的Spring相关支持功能的Eclipse插件包. ...
- Spring MVC 学习总结(一)——MVC概要与环境配置 转载自【张果】博客
Spring MVC 学习总结(一)--MVC概要与环境配置 目录 一.MVC概要 二.Spring MVC介绍 三.第一个Spring MVC 项目:Hello World 3.1.通过Mave ...
- Spring MVC 学习总结(十)——Spring+Spring MVC+MyBatis框架集成(IntelliJ IDEA SSM集成)
与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...
- Spring MVC 学习 -- 创建过程
Spring MVC 学习 -- 创建过程 Spring MVC我们使用的时候会在web.xml中配置 <servlet> <servlet-name>SpringMVC< ...
- Spring MVC 学习笔记一 HelloWorld
Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...
- Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)
很多时候前端都需要调用后台服务实现交互功能,常见的数据交换格式多是JSON或XML,这里主要讲解Spring MVC为前端提供JSON格式的数据并实现与前台交互.RESTful则是一种软件架构风格.设 ...
随机推荐
- HNU13377:Book Club(DFS)
Problem description Porto's book club is buzzing with excitement for the annual book exchange event! ...
- JAVA学习第四十五课 — 其它对象API(一)System、Runtime、Math类
一.System类 1. static long currentTimeMillis() 返回以毫秒为单位的当前时间. 实际上:当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫 ...
- 提高FPGA速度的quartus编译选项
Turning on some optimizations in Quartus II may help increase it. Here are some you may want to try: ...
- 安卓操作sqlite3,增删改查
创建 layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
- pyspark import 可以通过 --py-files
公用函数的放到了 common.py 文件中. 通过 --py-files 可以在pyspark中可以顺利导入: pyspark --py-files lib/common.py > impor ...
- HikariCP--一款高性能的 JDBC 连接池
源码地址:https://github.com/brettwooldridge/HikariCP 使用方法: Java 8 maven artifact: <dependency> < ...
- HBase的体系结构
- Java基础学习(六)-- 递归以及文件I/O流基础详解
递归 1.递归的概念: 在函数自身内部,调用函数本身的方式,称为递归. 2.递归的注意事项:包括递进去,归出来两步. 即:首先依次执行[函数调自身语句]上半部分的代码,知道最里层.(递进去),然后 ...
- 深入理解 sudo 与 su 之间的区别
深入理解 sudo 与 su 之间的区别 作者: Himanshu Arora 译者: LCTT zhb127 在早前的一篇文章中,我们深入讨论了 sudo 命令的相关内容.同时,在该文章的末尾有提到 ...
- LightOJ-1282 Leading and Trailing 模算数 快速幂 对数的用法
题目链接:https://cn.vjudge.net/problem/LightOJ-1282 题意 给出两个正整数n(2 ≤ n < 231), k(1 ≤ k ≤ 1e7) 计算n^k的前三 ...