FreeSSL.cn 是一個免費提供 HTTPS 證書申請、HTTPS 證書管理和 HTTPS 證書到期提醒服務的網站,旨在推進 HTTPS 證書的普及與應用,簡化證書申請的流程。
01、關於 FreeSSL.cn
FreeSSL.cn 是一個免費提供 HTTPS 證書申請、HTTPS 證書管理和 HTTPS 證書到期提醒服務的網站,旨在推進 HTTPS 證書的普及與應用,簡化證書申請的流程。
當然了,我看重的不是免費,而是 FreeSSL 使用起來非常人性化。我是一個計算機常識非常薄弱的程序員(羞愧一下),但通過 FreeSSL,我竟然可以獨自完成 Tomcat 的 HTTPS 配置!
很多年以前,公司要做華夏銀行的接口對接,需要 HTTPS 訪問,大概花了 3000 塊買的證書,最後證書還有問題,HTTPS 也沒搞定。總之,坑的很!
FreeSSL.cn 有很大的不同,申請非常便捷,優點很多,值得推薦一波。畢竟再也不用郵件、電話各種聯繫了(也許時代進步了)。
- 100% 永久免費;這要感謝 Let’s Encrypt 與 TrustAsia 提供的免費 SSL 證書。
- 在 HTTPS 證書到期前,FreeSSL.cn 會及時地提醒更換證書,免費的服務。
- 私鑰不在網絡中傳播,確保 HTTPS 證書的安全。
02、使用 FreeSSL 申請證書
第一步,填寫域名,點擊「創建免費的 SSL 證書」
第二步,填寫郵箱,點擊「創建」
1)證書類型默認為 RSA
RSA 和 ECC 有什麼區別呢?可以通過下面幾段文字瞭解一下。
HTTPS 通過 TLS 層和證書機制提供了內容加密、身份認證和數據完整性三大功能,可以有效防止數據被監聽或篡改,還能抵禦 MITM(中間人)攻擊。TLS 在實施加密過程中,需要用到非對稱密鑰交換和對稱內容加密兩大算法。
對稱內容加密強度非常高,加解密速度也很快,只是無法安全地生成和保管密鑰。在 TLS 協議中,應用數據都是經過對稱加密後傳輸的,傳輸中所使用的對稱密鑰,則是在握手階段通過非對稱密鑰交換而來。常見的 AES-GCM、ChaCha20-Poly1305,都是對稱加密算法。
非對稱密鑰交換能在不安全的數據通道中,產生只有通信雙方才知道的對稱加密密鑰。目前最常用的密鑰交換算法有 RSA 和 ECDHE:RSA 歷史悠久,支持度好,但不支持 PFS(Perfect Forward Secrecy);而 ECDHE 是使用了 ECC(橢圓曲線)的 DH(Diffie-Hellman)算法,計算速度快,支持 PFS。
2)驗證類型默認為 DNS
DNS 和文件驗證有什麼區別呢?我們再來一起了解下。
首先,我們需要明白一點,CA(Certificate Authority,證書頒發機構) 需要驗證我們是否擁有該域名,這樣才給我們頒發證書。
文件驗證(HTTP):CA 將通過訪問特定 URL 地址來驗證我們是否擁有域名的所有權。因此,我們需要下載給定的驗證文件,並上傳到您的服務器。
DNS 驗證:CA 將通過查詢 DNS 的 TXT 記錄來確定我們對該域名的所有權。我們只需要在域名管理平臺將生成的 TXT 記錄名與記錄值添加到該域名下,等待大約 1 分鐘即可驗證成功。
所以,如果對服務器操作方便的話,可以選擇文件驗證;如果對域名的服務器操作比較方便的話,可以選擇 DNS 驗證。如果兩個都方便的話,請隨意選啦。
3)CSR生成默認為離線生成
離線生成 、瀏覽器生成 和 我有 CSR 又有什麼區別呢?來,我們繼續瞭解一下。
離線生成 推薦!!!:私鑰在本地加密存儲,更安全;公鑰自動合成,支持常見證書格式轉換,方便部署;支持部分 WebServer 的一鍵部署,非常便捷。
離線生成的時候,需要先安裝 KeyManager,可以提供安全便捷的 SSL 證書申請和管理。下載地址如下: https://keymanager.org/
Windows 的話,安裝的時候要選擇“以管理員身份運行”。
瀏覽器生成:在瀏覽器支持 Web Cryptography 的情況下,會使用瀏覽器根據用戶的信息生成 CSR 文件。
Web Cryptography,網絡密碼學,用於在 Web 應用程序中執行基本加密操作的 JavaScript API。很多瀏覽器並不支持
我有 CSR:可以粘貼自己的 CSR,然後創建。
第三步,選擇離線生成,打開 KeyManager
填寫密碼後點擊「開始」,稍等片刻,出現如下界面。
第四步,返回瀏覽器,點擊「下一步」,出現如下界面。
第五步,下載文件,並上傳至服務器指定目錄下。
第六步,點擊「驗證」,通過後,出現以下界面。
第七步,點擊「保存到KeyManager」,可以看到證書狀態變成了已頒發。
03、為 Tomcat 配置 jks 格式證書
第一步,導出證書。假如服務器選擇的 Tomcat,需要導出 Java keystone (簡拼為 jks)格式的證書。
注意:私鑰的密碼在配置 Tomcat 的時候用到。
第二步,上傳證書至服務器。
第三步,配置 Tomcat 的 server.xml。
<code> <connector> maxThreads="250" maxHttpHeaderSize="8192" acceptCount="100" connectionTimeout="60000" keepAliveTimeout="200000"
redirectPort="8443"
useBodyEncodingForURI="true" URIEncoding="UTF-8"
compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,application/xml,application/json,text/javascript,application/javascript,text/css,text/plain,text/json,image/png,image/gif"/>
<connector> protocol="org.apache.coyote.http11.Http11NioProtocol"
port="443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="/home/backup/qingmiaokeji.cn.jks" keystorePass="Chenmo"
clientAuth="false" sslProtocol="TLS"
useBodyEncodingForURI="true" URIEncoding="UTF-8"
compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,application/xml,application/json,text/javascript,application/javascript,text/css,text/plain,text/json,image/png,image/gif"
/>
/<connector>/<connector>/<code>
其中 keystorePass 為導出證書時私鑰的加密密碼。
第四步,重啟 Tomcat,並在瀏覽器地址欄中輸入 https://itwanger.cn/ 進行測試。
注意到沒,瀏覽器地址欄前面有一個綠色的安全鎖,這說明 HTTPS 配置成功了!好了,為自己鼓個掌!
04、最後
你有沒有買個五分鐘的時間沙漏?如果超過五分鐘 HTTPS 還沒有配置成功,你過來揍我!
閱讀更多 科技伍小黑 的文章