原理:
將證書(也能夠叫公鑰)+私鑰轉化成 jks類型的keystore文件,在tomcat的server.xml中配置開啓
踩坑:
一、多數文章都是針對本身生成證書,配置雙向加密,其過程有生成,合併,導出,配置服務端,配置客戶端等等,看的一塌糊塗
二、多數文章都是以實驗爲參考,誤覺得生成的keystore文件名能夠隨意命名,直接使用拷貝命令的方式生成了一個tomcat.keystore文件
正確的命令方式應該是(證書名.keystore),或者說是生成證書時的CN名稱
三、clientAuth="true"這個是給雙向認證的時候用的,須要配置成false
四、開始配置使用tomcat.keystore這個名稱的時候,用內網瀏覽器訪問的時候是正常,可是接下來使用公網經過真正申請證書那個域名訪問的時候就訪問不了
而後查找緣由,各類測試,各類修改配置,內網瀏覽器測試也訪問不了,這裏我的猜想是開始的時候tomcat認爲配置了一個證書,而後按照規則提供了訪問
可是後來使用真正域名訪問的時候,tomcat接收了一個證書內容和本身的同樣,可是名稱或者是說CN名稱不一致,而後tomcat就不在提供服務了apache
過程:
一、將證書轉爲keystore形式,中間轉換成p12的名字能夠隨意
a、先轉爲p12格式
openssl pkcs12 -export -in ./www.123.com.cn.cer -inkey ./server.key -out ./projectX.p12
記住輸入的密碼
b、將p12轉爲.keystore格式
keytool -importkeystore -v -srckeystore ./projectX.p12 -srcstoretype pkcs12 -srcstorepass 123456 -destkeystore ./www.123.com.cn.keystore -deststoretype jks -deststorepass 123456
二、配置tomcat下server.xml文件
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="/usr/local/cert/www.123.com.cn.keystore.keystore"
keystorePass="123456" />瀏覽器