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選項--->內容--->證書--->受信任的根證書辦法機構--->導入--->選擇文件 注:導入這個選項是爲了 瀏覽器不再提示: “此網站的安全證書有問題 ”