OpenSSL 開源碼 伺服器 SSL 資安 憑證 安全

用Let's Encrypt免費憑證 實作OpenSSL安全網站

2016-04-14
本文將採用開源碼OpenSSL套件來實作一個安全的SSL網站,以便簽發符合資安政策的數位憑證,並說明如何透過Let's Encrypt服務來取得免費且合法的數位憑證。

X.509簡介

X.509最早起始於1998年,由國際電信聯盟(ITU-T)制定的一種數位憑證標準,如圖9所示,其架構分為三層。


▲圖9 X.509架構示意圖。

由上述之授權中心負責憑證的簽發與驗證。基本上,目前的瀏覽器均會內建主要的憑證授權中心(CA),圖10所示為Chrome瀏覽器所內建憑證管理中心的資訊,一旦使用者需要相關驗證時(如HTTPS連線),就會利用所內建的憑證授權中心來驗證金鑰是否經過簽署。


▲圖10 Chrome瀏覽器內建的憑證管理中心。

X.509憑證內容主要是說明簽章演算法、有效日期、簽署的CA等等資訊,常用欄位如圖11所示。


▲圖11 X.509憑證常用欄位。

介紹過數位憑證相關的背景知識後,最後將以OpenSSL程式庫為例來實際簽發符合目前主流瀏覽器安全規範的數位憑證。

安裝自行簽發數位憑證的SSL網站

如果要為自己的伺服器申請一張數位憑證,在實際的運作中必須經下列步驟:

1. 申請者必須先產生私鑰。

2. 向RA申請。在審核相關資訊,確認身分後,就 會產生憑證需求檔(C.S.R)並向CA請求簽發數位憑證。

3. CA在驗證過後即簽發數位憑證,並將相關資訊送 往DS管理。

在本文中將以自行簽發的方式來取得數位憑證,因此執行如下指令(其中#部分為註解):


在產生數位憑證後,基本上只要更改httpd-ssl.conf即可,須更改下列選項,亦即指定憑證與金鑰的位置,然後重新啟動Apache即可:


使用自行簽署的數位憑證,並未經過公正的第三方單位驗證,所以瀏覽器在瀏覽此類SSL網站時,將會觸發警告訊息,如果要避免此類訊息,可利用Let's Encrypt套件來免費取得有效的數位憑證。

安裝Let's Encrypt

Let's Encrypt是一個由ISRG(Internet Security Research Group)組織所維護管理的數位認證機構,其主要目的在於為網站伺服器提供免費的數位憑證。目前的政策是所簽發的證書一次有效期為3個月(可使用延期的方式持續使用)。


▲圖12 安裝Let’s Encrypt。

Let's Encrypt安裝方式如圖12所示,首先執行「git clone https://github.com/letsencrypt/letsencrypt」命令取得套件。接著,使用「letsencrypt-auto」命令來更新letsencrypt相關套件。然後以「letsencrypt-auto certonly --webroot -w /usr/local/apache2/htdocs/ -d test.7995.tw」命令產生相關的數位憑證,相關參數說明如下:

webroot:使用webroot的方式作驗證,可不須停止目 前運作中的網站伺服器服務。

-w:設定網站根目錄的位置

-d:欲申請憑證的網域名稱

成功執行指令後,即產生如圖13所示的數位憑證。


▲圖13 產生數位憑證。

以同樣的設定方式設定httpd-ssl.conf,指定相關憑證的所在位置即可,設定內容如下:


重啟網站伺服器後,再以瀏覽器測試,就不會出現如自行簽署數位憑證的警告訊息。如果有興趣,可利用瀏覽器來查看數位憑證的內容,如圖14所示。


▲圖14 查看數位憑證的內容。

實作至此,一個完整SSL網站就建構完成了!

<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!