1. 程式人生 > >Spring MVC學習總結(5)——SpringMVC專案關於安全的一些配置與實現方式

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專案關於安全的一些配置與實現方式