tomcat配置https單向和雙向認證

1.認證簡介

     ssl作爲一個加密的協議,協議棧位於tcp協議之上,主要用來進行傳輸過程中的加密,加密的過程就涉及到證書相關的配置,本文重在講解配置。

    tomcat默認的https端口是8443。

簡要描述一下,ssl握手的過程

a.客戶端發送client hello ,主要包括客戶端支持的ssl協議和客戶端支持的加密算法。

b.服務器將支持的協議、從客戶端列表選取的加密協議、服務器的證書發送給客戶端,如果是雙向的,服務器會要求客戶端提供證書。

c、客戶端校驗證書是否過期、證書的頒發機構是否是瀏覽器中註冊的證書頒發機構。如果不是,則給出提示信息.

d.客戶端和服務器進行相應的加密和解密完成握手(寫的比較粗略)

2.模擬環境

      客戶端:window7(X64)   谷歌瀏覽器(火狐瀏覽器可能有些問題)   證書儲存路徑:C:\Users\kefan\Desktop\conf

     服務器端(centos7 64)  tomcat7    /home/tomcat/apache-tomcat-7.0.75/keys

   

3.步驟

3.1單向認證

3.1.1服務器生成祕鑰庫(tomcat.keystore)

keytool -genkey -v -alias tomcat -keyalg RSA     -keystore tomcat.keystore -dname "CN=192.168.233.133,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass tomcat -keypass tomcat

3.1.2服務器生成頒發給客戶端的證書文件(選配tomcat.cer)

         keytool -export -alias tomcat -keystore tomcat.keystore -file tomcat.cer -storepass tomcat

3.1.3修改tomcat的配置文件(server.xml)

  <Connector port="8443"
           protocol="org.apache.coyote.http11.Http11Protocol"
           maxThreads="150"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           clientAuth="false"
           sslProtocol="TLS"  
           keystoreFile="keys/tomcat.keystore"
           keystorePass="tomcat"
           truststoreFile="keys/tomcat.keystore"
           truststorePass="tomcat"/>

3.1.4測試

由於證書的頒發機構不是瀏覽器的根證書頒發機構,所以需要添加到信任列表中才能訪問

3.1.5爲了避免瀏覽器的添加信任可以選擇導入3.1.2生成的證書文件(tomcat.cer)

    上個步驟中,由於證書的頒發機構不存在與瀏覽器的根證書頒發機構,所以給出了警告,取消這個警告,需要將服務器頒發的證書添加到瀏覽器的根證書頒發機構中,將tomcat.cer下載到客戶端,安裝,在選擇證書存儲時,選擇受信任的根證書頒發機構,導入完成之後,重啓瀏覽器,不出現警告信息。


3.2雙向認證

3.1.1服務器生成祕鑰庫(tomcat.keystore)

keytool -genkey -v -alias tomcat -keyalg RSA   -validity 3650  -keystore tomcat.keystore -dname "CN=192.168.233.133,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass tomcat -keypass tomcat

3.1.2服務器生成頒發給客戶端的證書文件(tomcat.cer)

keytool -export -alias tomcat -keystore tomcat.keystore -file tomcat.cer -storepass tomcat

3.1.3客戶端生成祕鑰庫(client.p12)

keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12    -keystore client.p12 -dname "CN=192.168.233.1,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass client -keypass client

3.1.4客戶端生成頒發給服務器端的證書文件(client.cer)

keytool -export -alias client -keystore client.p12 -storetype PKCS12 -storepass client -rfc -file client.cer

3.1.5服務器導入客戶端頒發的證書文件(tomcat.truststore)

keytool -import -v -file  client.cer -keystore  tomcat.truststore -storepass tomcat

3.1.6客戶端添加祕鑰庫到瀏覽器(client.p12)

       選擇證書存儲時,分別添加個人和受信任的根證書頒發機構.


3.1.7客戶端添加服務器頒發的證書(tomcat.cer)

同單向配置中的導入選項。

3.1.8修改tomcat的配置文件

  <Connector port="8443"
           protocol="org.apache.coyote.http11.Http11Protocol"
           maxThreads="150"
           SSLEnabled="true"
           scheme="https"
           secure="true"
           clientAuth="true"
           sslProtocol="TLS"  
           keystoreFile="keys/tomcat.keystore"
           keystorePass="tomcat"
           truststoreFile="keys/tomcat.truststore"
           truststorePass="tomcat"/>





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章