1. 程式人生 > >阿里雲https證書tomcat配置

阿里雲https證書tomcat配置

當我們使用Java生成的證書使用https訪問時會出現未認證的問題,證書風險


現在我們就申請一個阿里云云盾的免費證書

一、登入阿里雲-->安全(雲盾)-->證書服務->購買證書


在配置單中選擇 "免費型DV SSL"   證書提供商品牌為:“賽門鐵克” 注意:免費數字證書,最多保護一個明細子域名,不支援萬用字元,一個阿雲帳戶最多簽發20張免費證書最後支付。

然後再點選檢視


此時還未完成,需要點選補全資訊,並填寫相應資訊。真實填寫就可以了。包括:域名、姓名、郵箱等等。因為我的域名是託管到阿里雲解析服務的,所以我的認證方式DNS解析認證,並勾選了傳送cname。填寫完成後才是“待稽核”狀態,等待就可以了。


10分鐘左右就會收到阿里雲的郵件。郵件的內容:傳送給你的 主機記錄和記錄值。

阿里雲自動的去添加了一條cname記錄


大概過半個多小時後證書狀態會變成已簽發


這個時候就可以點進去下載證書了。選擇tomcat,支援2種方式:

Tomcat支援JKS格式證書,從Tomcat7開始也支援PFX格式證書,兩種證書格式任選其一,我使用的第一種方式。
檔案說明:

1. 證書檔案214068026470389.pem,包含兩段內容,請不要刪除任何一段內容。

2. 如果是證書系統建立的CSR,還包含:證書私鑰檔案214068026470389.key、PFX格式證書檔案214068026470389.pfx、PFX格式證書密碼檔案pfx-password.txt。

1、證書格式轉換

在Tomcat的安裝目錄下建立cert目錄,並且將下載的全部檔案拷貝到cert目錄中。如果申請證書時是自己建立的CSR檔案,附件中只包含214068026470389.pem檔案,還需要將私鑰檔案拷貝到cert目錄,命名為214068026470389.key;如果是系統建立的CSR,請直接到第2步。

到cert目錄下執行如下命令完成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"