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

沉默王二發表於2019-05-09

01、關於 FreeSSL.cn

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

當然了,我看重的不是免費,而是 FreeSSL 使用起來非常人性化。我是一個計算機常識非常薄弱的程式設計師(羞愧一下),但通過 FreeSSL,我竟然可以獨自完成 Tomcat 的 HTTPS 配置!

很多年以前,公司要做華夏銀行的介面對接,需要 HTTPS 訪問,大概花了 3000 塊買的證照,最後證照還有問題,HTTPS 也沒搞定。總之,坑的很!

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

FreeSSL.cn 有很大的不同,申請非常便捷,優點很多,值得推薦一波。畢竟再也不用郵件、電話各種聯絡了(也許時代進步了)。

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

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

  • 私鑰不在網路中傳播,確保 HTTPS 證照的安全。

02、使用 FreeSSL 申請證照

第一步,填寫域名,點選「建立免費的 SSL 證照」

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

第二步,填寫郵箱,點選「建立」

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

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 證照申請和管理。下載地址如下: keymanager.org/

Windows 的話,安裝的時候要選擇“以管理員身份執行”。

瀏覽器生成:在瀏覽器支援 Web Cryptography 的情況下,會使用瀏覽器根據使用者的資訊生成 CSR 檔案。

Web Cryptography,網路密碼學,用於在 Web 應用程式中執行基本加密操作的 JavaScript API。很多瀏覽器並不支援

我有 CSR:可以貼上自己的 CSR,然後建立。

第三步,選擇離線生成,開啟 KeyManager

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

填寫密碼後點選「開始」,稍等片刻,出現如下介面。

image.png

第四步,返回瀏覽器,點選「下一步」,出現如下介面。

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

第五步,下載檔案,並上傳至伺服器指定目錄下。

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

第六步,點選「驗證」,通過後,出現以下介面。

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

第七步,點選「儲存到KeyManager」,可以看到證照狀態變成了已頒發。

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

03、為 Tomcat 配置 jks 格式證照

第一步,匯出證照。假如伺服器選擇的 Tomcat,需要匯出 Java keystone (簡拼為 jks)格式的證照。

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

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

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

第二步,上傳證照至伺服器。

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

第三步,配置 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 配置,二哥手把手教

注意到沒,瀏覽器位址列前面有一個綠色的安全鎖,這說明 HTTPS 配置成功了!好了,為自己鼓個掌!

04、最後

你有沒有訂個五分鐘的時間沙漏?如果超過五分鐘 HTTPS 還沒有配置成功,你過來揍我!

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

相關文章