• 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,是自定义的名字。以及保存到当前目录下

    这个时候会提醒你创建密码的,接着你按照如下的方式和提示输入自己相应的信息

    springmvc项目关于安全的一些配置与实现方式

    springmvc项目关于安全的一些配置与实现方式

    最后打一个字:是

    按回车,完成操作。

    对于tomcat配置

    找到tomcat的conf目录,打开server.xml

    springmvc项目关于安全的一些配置与实现方式找到原来已经注释的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连接了。

    springmvc项目关于安全的一些配置与实现方式

    我们点击下方的高级,可以访问tomcat的主页,此时也是使用HTTPS的连接的

    springmvc项目关于安全的一些配置与实现方式

    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格式

    这个时候在我们的目录下会生成我们需要的公钥和私钥

    springmvc项目关于安全的一些配置与实现方式完整的操作如下:

    springmvc项目关于安全的一些配置与实现方式

  • 相关阅读:
    【spring配置】——spring整合Quartz定时器
    Dubbo服务集群,常见容错机制:failover ,failsafe,failfase ,failback,forking
    dubbo 配置文件详解
    Windows 下Nexus搭建Maven私服
    linux下配置java环境
    nexus-2.11.4-01-bundle.tar.gz 下载地址
    XShell 连接 vm虚拟机中的redhat Linux系统
    APIO 2017 游记
    洛谷 P3128 [USACO15DEC]最大流Max Flow
    洛谷 P1197 BZOJ 1015 [JSOI2008]星球大战 (ZOJ 3261 Connections in Galaxy War)
  • 原文地址:https://www.cnblogs.com/zhanghaiyang/p/7213035.html
Copyright © 2020-2023  润新知