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则是一种软件架构风格.设 ...
随机推荐
- JavaSript之prototype属性
近期在JavaSript进行Array操作的时候发现没有删除节点的方法.而我要实现的效果须要不断调用删除节点的方法.查找了相关资料发现能够利用prototype属性给Array添加删除节点的方法.而且 ...
- CMD应用 qtp/winshell/cmd的交互
=================================================================== '採用windows.shell的 sendkeys 方式: s ...
- 小贝_redis list类型学习
redis list类型 一.查看list类型的命令 二.list命令具体解释 一.查看list类型的命令 1.在终端数据 help @list 127.0.0.1:6379>help @li ...
- 关于有的Apk无法反编译的探究
Android的apk包,其实就是zip包,只不过后缀名换了而已!使用“好压”等解压缩工具解压,就可以看到里面的内容了.简单介绍一下吧. 以下就是解压出来的apk的内容: 其中: assets ...
- poj_2352树状数组
因为y已经排好序了,用x坐标建立一维树状数组 #include<iostream> #include<cstdio> #include<cstring> using ...
- 37.创建自定义的指令的限制使用 通过restrict 设置
转自:https://www.cnblogs.com/best/tag/Angular/ 1. 元素名 <runoob-directive></runoob-directive> ...
- Traversal with a for loop
A lot of computations involve processing a string one character at a time. Often they start at the b ...
- POJ 1274 二分图匹配
匈牙利算法 裸题 //By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> ...
- Hadoop框架基础(二)
** Hadoop框架基础(二) 上一节我们讨论了如何对hadoop进行基础配置已经运行一个简单的实例,接下来我们尝试使用eclipse开发. ** maven安装 简单介绍:maven是一个项目管理 ...
- PostgreSQL Replication之第七章 理解Linux高可用(4)
7.4 术语与概念 一组计算机被称为集群.集群内的一台计算机被称为一个节点. 当集群内的节点数量是 N (2,,3,等.) ,那么我们讨论一个N节点的集群. 高可用性软件,传输层和集群管理层都运行于每 ...