五分鐘搞定 HTTPS 配置,二哥手把手教

0一、關於 FreeSSL.cn

FreeSSL.cn 是一個免費提供 HTTPS 證書申請、HTTPS 證書管理和 HTTPS 證書到期提醒服務的網站,旨在推動 HTTPS 證書的普及與應用,簡化證書申請的流程。javascript

固然了,我看重的不是免費,而是 FreeSSL 使用起來很是人性化。我是一個計算機常識很是薄弱的程序員(羞愧一下),但經過 FreeSSL,我居然能夠獨自完成 Tomcat 的 HTTPS 配置!css

不少年之前,公司要作華夏銀行的接口對接,須要 HTTPS 訪問,大概花了 3000 塊買的證書,最後證書還有問題,HTTPS 也沒搞定。總之,坑的很!html

FreeSSL.cn 有很大的不一樣,申請很是便捷,優勢不少,值得推薦一波。畢竟不再用郵件、電話各類聯繫了(也許時代進步了)。java

  • 100% 永久免費;這要感謝 Let's Encrypt 與 TrustAsia 提供的免費 SSL 證書。程序員

  • 在 HTTPS 證書到期前,FreeSSL.cn 會及時地提醒更換證書,免費的服務。算法

  • 私鑰不在網絡中傳播,確保 HTTPS 證書的安全。apache

0二、使用 FreeSSL 申請證書

第一步,填寫域名,點擊「建立免費的 SSL 證書」json

第二步,填寫郵箱,點擊「建立」瀏覽器

1)證書類型默認爲 RSAtomcat

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

填寫密碼後點擊「開始」,稍等片刻,出現以下界面。

image.png

第四步,返回瀏覽器,點擊「下一步」,出現以下界面。

第五步,下載文件,並上傳至服務器指定目錄下。

第六步,點擊「驗證」,經過後,出現如下界面。

第七步,點擊「保存到KeyManager」,能夠看到證書狀態變成了已頒發。

0三、爲 Tomcat 配置 jks 格式證書

第一步,導出證書。假如服務器選擇的 Tomcat,須要導出 Java keystone (簡拼爲 jks)格式的證書。

注意:私鑰的密碼在配置 Tomcat 的時候用到。

第二步,上傳證書至服務器。

第三步,配置 Tomcat 的 server.xml。

 <Connector port="81" protocol="HTTP/1.1"
                        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"
/>

其中 keystorePass 爲導出證書時私鑰的加密密碼。

第四步,重啓 Tomcat,並在瀏覽器地址欄中輸入 https://qingmiaokeji.cn/ 進行測試。

注意到沒,瀏覽器地址欄前面有一個綠色的安全鎖,這說明 HTTPS 配置成功了!好了,爲本身鼓個掌!

0四、最後

你有沒有訂個五分鐘的時間沙漏?若是超過五分鐘 HTTPS 尚未配置成功,你過來揍我!

相關文章
相關標籤/搜索