Let's Encrypt:初次使用免費的ssl證書,並生成java用的 jks(keystore) 文件


現在都流行 https,今天晚上花了二個小時,學習了一下,這里做個學習總結:

因為剛開始接觸,就使用免費的:Let's Encrypt

Let's Encrypt證書特點:

1. 現在主流的瀏覽器(chrome, firefox, ie)都支持 Let's Encrypt 證書。

2. 申請ssl證書簡單快捷,用戶名都不需要注冊就能獲取。

3. 免費證書有效期: 3 個月,到期后需要重新獲取證書,重新安裝。

 

我是根據 http://www.itbulu.com/ssl-for-free.html 提供的信息來操作的:

從 https://www.sslforfree.com 獲取免費ssl證書。

只需簡單的上傳一個文件,驗證一下網站的所有者就可以了。

注意:下載的文件存放在 /.well-known/acme-challenge/   由於文件夾[.well-known]中含有一個小數點,所以在iis中需要配置一下MIME類型,否則上傳的驗證文件無法訪問。

 

 

獲取到的證書文件有3個:

ca_bundle.crt

certificate.crt

private.key

由於我是在 iis 上使用,iis 安裝ssl證書需要的是一個 .pfx 文件。這需要使用 openssl.exe 生成一個 .pfx 文件。

好在我電腦上原來有一個自已編譯的 openssl.exe,剛好能用上。

根據 www.sslforfree.com 的提示,執行下列命令生成 certificate_combined.pfx:

openssl pkcs12 -export -out "certificate_combined.pfx" -inkey "private.key" -in "certificate.crt" -certfile ca_bundle.crt

輸入一個密碼,然后再重復輸入一次密碼,就 生成 certificate_combined.pfx 文件了。

 

然后在iis上,在一個站點上點右鍵,查看【屬性,配置服務器證書,選擇【從 .pfx 文件導入證書】。

這樣就完成了 http -> https 的升級。

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

將 cert 和 key 文件轉換成java使用的 jks(keystore)文件的方法:


1. 生成 PKCS#12 文件

openssl pkcs12 -export -in "certificate.crt" -inkey "private.key" -certfile "ca_bundle.crt" -out "qlz.p12" -name "qlz"

驗證文件(測試用,這一步不重要): keytool -rfc -list -keystore qlz.p12 -storetype pkcs12

2. 生成 jks 文件 (參考: https://stackoverflow.com/questions/11952274/how-can-i-create-keystore-from-an-existing-certificate-abc-crt-and-abc-key-fil)

keytool -importkeystore -srckeystore qlz.p12 -srcstoretype PKCS12 -destkeystore qlz.jks -deststoretype JKS

完工,生成的 qlz.jks 就可以供 java 直接使用。

 --------------------------------------------------------------------------------------------------------------------------------------------------------------------

需要注意的地方:

1. 如果有多個站點,其中一個開啟了https,就會占用 443 端口。另一個站點如果同時想開啟https,就會提示失敗,因為無法開啟443端口了。

查了一下相關資料,說是 iiis 6,因為使用ssl,無法讀取請求的主機頭(host),所以只能讀取配置的第一個ssl證書,如果有多個ssl證書,就無法正確與host相匹配了。 好像說 iis8開啟一個功能*SNI (Server Name Indication),就能解決這個問題。

2. 每隔3個月,證書到期一次,需要重復操作一次,更新證書。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM