閱讀本文前,請先參看前文https://www.jb51.net/article/142204.htm
當我們使用Java生成的證書使用https訪問時會出現未認證的問題,證書風險
現在我們就申請一個阿里云云盾的免費證書
一、登錄阿里云-->安全(云盾)-->證書服務->購買證書
在配置單中選擇 "免費型DV SSL" 證書提供商品牌為:“賽門鐵克” 注意:免費數字證書,最多保護一個明細子域名,不支持通配符,一個阿云帳戶最多簽發(fā)20張免費證書最后支付。
然后再點擊查看
此時還未完成,需要點擊補全信息,并填寫相應信息。真實填寫就可以了。包括:域名、姓名、郵箱等等。因為我的域名是托管到阿里云解析服務的,所以我的認證方式DNS解析認證,并勾選了發(fā)送cname。填寫完成后才是“待審核”狀態(tài),等待就可以了。
10分鐘左右就會收到阿里云的郵件。郵件的內容:發(fā)送給你的 主機記錄和記錄值。
阿里云自動的去添加了一條cname記錄
大概過半個多小時后證書狀態(tài)會變成已簽發(fā)
這個時候就可以點進去下載證書了。選擇tomcat,支持2種方式:
Tomcat支持JKS格式證書,從Tomcat7開始也支持PFX格式證書,兩種證書格式任選其一,我使用的第一種方式。
文件說明:
1. 證書文件214068026470389.pem,包含兩段內容,請不要刪除任何一段內容。
2. 如果是證書系統(tǒng)創(chuàng)建的CSR,還包含:證書私鑰文件214068026470389.key、PFX格式證書文件214068026470389.pfx、PFX格式證書密碼文件pfx-password.txt。
1、證書格式轉換
在Tomcat的安裝目錄下創(chuàng)建cert目錄,并且將下載的全部文件拷貝到cert目錄中。如果申請證書時是自己創(chuàng)建的CSR文件,附件中只包含214068026470389.pem文件,還需要將私鑰文件拷貝到cert目錄,命名為214068026470389.key;如果是系統(tǒng)創(chuàng)建的CSR,請直接到第2步。
到cert目錄下執(zhí)行如下命令完成PFX格式轉換命令,此處要設置PFX證書密碼,請牢記:
復制代碼 代碼如下:
openssl pkcs12 -export -out 214068026470389.pfx -inkey 214068026470389.key -in 214068026470389.pem
2、PFX證書安裝
找到安裝Tomcat目錄下該文件server.xml,一般默認路徑都是在 conf 文件夾中。找到 <Connection port="8443" 標簽,增加如下屬性:
keystoreFile="cert/214068026470389.pfx"
keystoreType="PKCS12"
#此處的證書密碼,請參考附件中的密碼文件或在第1步中設置的密碼
keystorePass="證書密碼"
完整的配置如下,其中port屬性根據實際情況修改:
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
keystoreFile="cert/214068026470389.pfx"
keystoreType="PKCS12"
keystorePass="您的證書密碼"
clientAuth="false" sslProtocol="TLS" />
重啟tomcat,用https訪問成功
關于異常: Connector attribute SSLCertificateFile must be defined when using SSL with APR
Tomcat提供了兩個SSL實現,一個是JSSE實現,另一個是APR實現。Tomcat將自動選擇使用哪個實現,即如果安裝了APR則自動選擇APR,否則選擇JSSE。如果不希望讓Tomcat自動選擇,而是我們自己指定一個實現則可通過protocol定義,如下:APR文件名為tcnative-1.dll。6.x里沒這個dll文件,而7.x里有。6.x沒有,6.x默認使用JSSE實現,而7.0默認使用APR實現。弄明白緣由就好辦了。由于習慣使用6.0的配置方式(即JSEE實現),因此只要把conf\server.xml里的protocol的值修改一下就行了:
protocol="org.apache.coyote.http11.Http11Protocol"
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。