tomcat配置https

https協議中相關概念 #

##  ssl協議通信設計的文件格式 ##

  • xxx.cer
        

    cer文件被稱爲證書,包含的公鑰。通常會將cer文件導入到通信對方的truststore文件中。

  • xxx.keystore、xxx.jks
        

    祕鑰庫存儲文件,其中可以容納N對祕鑰和公鑰。可以從該文件中導出cer文件(導出公鑰證書)

  • xxx.truststore
        

    信任證書存儲庫,其中僅僅包含的是需要被認證的通信對方的公鑰

  • xxx.pfx
    微軟推出的證書文件,通常提供給瀏覽器使用,其中既包含了公鑰,也包含了私鑰。在https的雙向認證過程當中,通常需要將該文件加入到瀏覽器的 “個人-證書存儲下”。

tomcat配置https連接

##  配置概述
      
tomcat中內置了https協議的支持,默認是沒有打開的,需要我們在配置文件中打開https的配置。

      修改$CATALINA_HOME/conf/server.xml,改成一下配置

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

      重要配置說明:

	clientAuth:	這個配置是否重要,通常配置https的時候,這個選項會配置成false,代表的是服務器不需要驗證客戶端身份信息

	sslProtocol:代表的是ssl的協議版本

	keystoreFile:代表的是祕鑰庫的路徑

	keystorePass:祕鑰庫的文件的密碼

	truststoreFile:代表的是信任文件的地址

	truststorePass:代表的是信任庫文件的密碼

##  使用jdk的keytool工具生成自簽證書文件

  • 服務端生成祕鑰庫(tomcat.keystore)(服務器端執行)

      keytool -genkey -v -alias server -keyalg RSA  -validity 3650 -keystore tomcat.keystore -dname "CN=192.168.233.134,OU=cn,O=cn,L=cn,ST=cn,c=cn" -storepass tomcat -keypass tomcat
      
      注:CN:所有者,選擇服務器的域名或者ip(很重要)
    
  • 服務器端生成公鑰文件(tomcat.cer)(服務器端執行)

      keytool -export -alias server -keystore tomcat.keystore -file tomcat.cer -storepass tomcat
    
  • 客戶端生成祕鑰庫(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
      
      注:CN:所有者,選擇客戶端域名或者ip(很重要)
    
  • 客戶端生成公鑰文件(client.cer)(客戶端執行)

      keytool -export -alias client -keystore client.p12 -storetype PKCS12 -storepass client -rfc -file client.cer
    
  • 服務器端導入客戶端的公鑰文件(tomcat.truststore)(服務器端執行)

      keytool -import -v -file  client.cer -keystore  tomcat.truststore -storepass tomcat
    
  • 客戶端瀏覽器導入client.p12到個人證書存儲中

      工具--->internet選項--->內容--->證書--->個人--->導入--->選擇文件--->輸入client.p12的密碼
    
      注:服務器端會要求客戶端提供證書文件,這個位置如果沒導入證書文件大到瀏覽器中,ssl握手會失敗。
    
  • 客戶端瀏覽器導入tomcat.cer到受信任的根證書頒發機構

      工具--->internet選項--->內容--->證書--->受信任的根證書辦法機構--->導入--->選擇文件
    
      注:導入這個選項是爲了  瀏覽器不再提示:  
      “此網站的安全證書有問題 ”
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章