https分為單項(xiàng)認(rèn)證和雙向認(rèn)證。
一般https頁(yè)面上的訪問(wèn)都是單項(xiàng)認(rèn)證,服務(wù)端發(fā)送數(shù)字證書給客戶端,客戶單方面驗(yàn)證。而服務(wù)端不做驗(yàn)證。
而雙向認(rèn)證,需要雙方都有證書,然后發(fā)送給對(duì)方進(jìn)行驗(yàn)證。一般用于企業(yè)應(yīng)用對(duì)接。
單項(xiàng)認(rèn)證
準(zhǔn)備工作:
1.首先使用cmd進(jìn)入到j(luò)dk的keytool工具目錄下,我的路徑D:Program Files (x86)jdk1.8.0_77jrebin,之后的keytool語(yǔ)句就在cmd執(zhí)行。
2.在D盤創(chuàng)建個(gè)ssl文件夾。
開(kāi)始:
1.服務(wù)端創(chuàng)建密鑰對(duì)及密鑰庫(kù)。
keytool -genkey -alias Tomcat -keypass 123456 -keyalg RSA -keysize 2048 -validity 365 -storetype JKS -keystore D:/ssl/keystore.jks -storepass 123456
回車之后會(huì)顯示如圖,這第一條信息【CN】一般寫你要綁定的域名或IP地址【高版本的瀏覽器不能隨便寫,否則也提示不安全】,然后下邊的信息可以根據(jù)自己情況寫。
然后我們看一下密鑰庫(kù)里的信息
keytool -list -v -keystore D:/ssl/keystore.jks
回車輸入密碼后
我們的密鑰對(duì)已經(jīng)生成了。
然后我們?nèi)ヅ渲孟聇omcat,我用的tomcat7,tomcat8可能會(huì)和本配置不同,請(qǐng)自行查找配置方法。
找到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",這個(gè)參數(shù)值如果為true為雙向認(rèn)證,false為單項(xiàng)認(rèn)證,我們用false。
啟動(dòng)tomcat訪問(wèn)下https://localhost:8443看下
然后點(diǎn)擊【證書信息】
可以看到這個(gè)證書就是配在服務(wù)端的證書,這樣就對(duì)了。至于證書風(fēng)險(xiǎn),是因?yàn)樽C書不在瀏覽器的“受信任的根證書頒發(fā)機(jī)構(gòu)”造成的,安裝后就不顯示了。