找回密碼
 註冊
搜索
查看: 2925|回復: 6

[教學] 架設支援SSL的網站伺服器

[複製鏈接]
發表於 2013-1-28 23:59:50 | 顯示全部樓層 |閱讀模式
 
Push to Facebook
電子商務除了「機密性」、「完整性」和「不可否認性」的要求外,其中還有一件最重要的事,即是證明身分。以至銀行開戶為例,在現實生活中,銀行通常會要求出示身分證及健保卡等證件來證明身分。
同樣地,在網路世界中,數位憑證(Certificate)即是像現實生活中的身分證一樣,可用來證明身分。而公共金鑰基礎建設(Public Key Infrastructure,PKI)即為維護建置數位憑證的機制(有點像是現實生活中的戶政單位)。PKI的架構如下圖示:  

▲PKI的架構。


其中,RA(Registration Authority)註冊中心的作用是,使用者向註冊中心提出申請憑證的要求,註冊中心在確認使用者的真實身分後,向憑證管理中心(Certificate Authority,CA)提出要申請數位憑證的要求。而CA憑證管理中心負責產生並管理憑證產理、註銷等相關事項。在PKI架構中,所有公鑰都被集中保管於公正第三人,也就是憑證機構(CA)手中,任何須要驗證的人都可向CA查詢交易相對人的公鑰。  

建立具有SSL認證功能的網站伺服器

接著,將以下列步驟來建立具有SSL認證功能的網站伺服器:  

1. 建立所使用私密金鑰(Private Key)和憑證申請檔(Certificate Signing Request)。
2. 將憑證申請檔(Certificate Signing Request)送給公開CA申請憑證,但在本解決方案中,將自行建立憑證。
3. 載入所核發的憑證。
4. 編譯安裝具有mod_ssl模組的Apache網站伺服器。
5. 設定只能以https來連接網站。  

建立SSL所需的相關憑證

在實作具有SSL支援的網站伺服器前,必須先建立SSL所需的相關憑證,在此利用OpenSSL來建立自行簽署的憑證。這裡要特別提醒的是,由於憑證為自行簽署而非使用公正的認證機關簽署,所以一旦使用瀏覽器連接時,將會出現「此網站為不被信任的網站」的訊息。  

請先行確認系統是否有OpenSSL套件,如果系統未支援OpenSSL,可利用指令「yum install openssl*」來安裝OpenSSL軟體。憑證產生流程如下圖示。在本解決方案中,相關的憑證檔案會被存放在「/root/key」目錄下。  

▲憑證產生流程。


產生一個私人金鑰,利用openssl來產生,執行如下的指令:  

(產生一個長度為1,024位元,檔名為private.key的私人金鑰)  

執行如下指令,利用私人金鑰產生一個憑證要求(Certificate Signing Request):  

(產生一個檔名為server.csr的憑證要求,在產生的過程中會詢問國家等相關資訊,使用預設規則即可)  

自行產生相關憑證。  

(利用私人金鑰「private.key」及憑證要求「server.csr」產生一個有效期限為365天且符合x509規格的憑證,檔名為server.crt)  

至此,在「/root/key」目錄下應會產生所需的認證檔案。  

編譯安裝具有SSL功能的網站伺服器

繼續安裝支援SSL功能的網站伺服器,連接至「http://httpd.apache.org/」取得Apache原始碼安裝(筆者所安裝的版本為2.2.17)。解壓縮後,執行指令「./configure --enable-ssl --enable-so --prefix=/usr/local/apache2/」,設定支援SSL功能,並且將相關程式安裝在「/usr/local/apache2/」目錄。然後執行指令「make」編譯Apache,以及使用指令「make install」將相關程式安裝在「/usr/local/apache2/」目錄下。  

安裝完成後,可利用指令「/usr/local/apache2/bin/httpd -l」檢查是否有mod_ssl,若有相關字眼,即代表Apache已支援SSL。  

成功安裝Apache伺服器後,即可繼續設定Apache的組態檔(httpd.conf)。在本文中不多加探討httpd.conf的用法,讀者僅須將該檔中的「#Include conf/extra/httpd-ssl.conf」改成「Include /conf/extra/httpd-ssl.conf」(相關的SSL組態值的設定檔)即可。接下來繼續說明httpd-ssl.conf,在httpd-ssl.conf內設定如下的組態:  



設定完成後,利用指令「/usr/local/apache2/bin/apache start」啟動Apache,接著利用https的連接方式連接,即可利用SSL加密往來的HTTP封包。但由於所使用的憑證為自行產生,並未經過公正的憑證機關簽署,所以在連接網站時,會出現下列的警告訊息,可不予理會,直接點選「繼續瀏覽此網站」即可。當然,如果網站是實際運作的商務網站,還是建議去申請一個憑證。  

▲點選「繼續瀏覽此網站」連結。


至此,一個支援SSL的網站伺服器已完成。
 
發表於 2013-11-10 00:57:28 | 顯示全部樓層
不錯,感謝版主
版主招募中
發表於 2013-11-10 00:57:28 | 顯示全部樓層
不錯,看看。  
發表於 2013-11-10 00:57:28 | 顯示全部樓層
哈哈,頂你了哦.  
發表於 2013-12-11 11:06:22 | 顯示全部樓層
不错, 了解一下。
發表於 2013-12-11 12:31:25 | 顯示全部樓層
楼主发帖辛苦了,谢谢楼主分享!

發表於 2013-12-20 09:08:15 | 顯示全部樓層
学习一下  菜鸟一窍不通~~~
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|小黑屋|TShopping

GMT+8, 2025-7-1 10:16 , Processed in 0.029852 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表