https分為單項認證和雙向認證。
一般https頁面上的訪問都是單項認證,服務端發送數字證書給客戶端,客戶單方面驗證。而服務端不做驗證。
而雙向認證,需要雙方都有證書,然后發送給對方進行驗證。一般用于企業應用對接。
單項認證
準備工作:
1.首先使用cmd進入到jdk的keytool工具目錄下,我的路徑D:Program Files (x86)jdk1.8.0_77jrebin,之后的keytool語句就在cmd執行。
2.在D盤創建個ssl文件夾。
開始:
1.服務端創建密鑰對及密鑰庫。
keytool -genkey -alias Tomcat -keypass 123456 -keyalg RSA -keysize 2048 -validity 365 -storetype JKS -keystore D:/ssl/keystore.jks -storepass 123456
回車之后會顯示如圖,這第一條信息【CN】一般寫你要綁定的域名或IP地址【高版本的瀏覽器不能隨便寫,否則也提示不安全】,然后下邊的信息可以根據自己情況寫。
然后我們看一下密鑰庫里的信息
keytool -list -v -keystore D:/ssl/keystore.jks
回車輸入密碼后
我們的密鑰對已經生成了。
然后我們去配置下tomcat,我用的tomcat7,tomcat8可能會和本配置不同,請自行查找配置方法。
找到tomcat的server.xml
添加如下配置:
<Connector port="8443" protocol="org.Apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="D:/ssl/keystore.jks"
keystorePass="123456"
truststoreFile="D:/ssl/keystore.jks"
truststorePass="123456"
clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" />
注意:clientAuth="false",這個參數值如果為true為雙向認證,false為單項認證,我們用false。
啟動tomcat訪問下https://localhost:8443看下
然后點擊【證書信息】
可以看到這個證書就是配在服務端的證書,這樣就對了。至于證書風險,是因為證書不在瀏覽器的“受信任的根證書頒發機構”造成的,安裝后就不顯示了。