FreeBSD安全連接方式SSL
通常的連接方式中,通信是以非加密的形式在網(wǎng)絡上傳播的,這就有可能被非法竊聽到,尤其是用于認證的口令信息。為了避免這個安全漏洞,就必須對傳輸過程進行加密。
對HTTP傳輸進行加密的協(xié)議為HTTPS,它是通過SSL(安全Socket層)進行HTTP傳輸?shù)膮f(xié)議,不但通過公用密鑰的算法進行加密保證傳輸?shù)陌踩?,而且還可以通過獲得認證證書CA,保證客戶連接的服務器沒有被假冒。
使用公用密鑰的方式可以保證數(shù)據(jù)傳輸沒有問題,但如果瀏覽器客戶訪問的站點被假冒,這也是一個嚴重的安全問題。這個問題不屬于加密本身,而是要保證密鑰本身的正確性問題。要保證所獲得的其他站點公用密鑰為其正確的密鑰,而非假冒站點的密鑰,就必須通過一個認證機制,能對站點的密鑰進行認證。當然即使沒有經(jīng)過認證,仍然可以保證信息傳輸安全,只是客戶不能確信訪問的服務器沒有被假冒。如果不是為了提供電子商務等方面對安全性要求很高的服務,一般不需要如此嚴格的考慮。
雖然Apache服務器不支持SSL,但Apache服務器有兩個可以自由使用的支持SSL的相關計劃,一個為Apache-SSL,它集成了Apache服務器和SSL,另一個為Apache+mod_ssl,它是通過可動態(tài)加載的模塊mod_ssl來支持SSL,其中后一個是由前一個分化出的,并由于使用模塊,易用性很好,因此使用范圍更為廣泛。還有一些基于Apache并集成了SSL能力的商業(yè)Web服務器,然而使用這些商業(yè)Web服務器主要是北美,這是因為在那里SSL使用的公開密鑰的算法具備專利權,不能用于商業(yè)目的,其他的國家不必考慮這個專利問題,而可以自由使用SSL。
雖然通常mod_ssl以及其他復雜的Apache模塊都提供了詳細的編譯安裝說明,并提供了非常有用的腳本程序和Makefile來幫助使用者進行安裝。然而為Web服務器增加一個模塊并不是一個簡單而易于描述的任務,幸運的是,F(xiàn)reeBSD提供了Ports Collection,讓使用者不必關系每一步安裝細節(jié)就能安裝好這個模塊。
如果不打算使用Ports Collection來安裝mod_ssl,那么事情就略微麻煩一些,必須自己手工下載Apache的源代碼,以及mod_ssl的代碼,按照說明一步步的編譯安裝。
Apache+mod_ssl依賴于另外一個軟件:openssl,它是一個可以自由使用的SSL實現(xiàn),首先需要安裝這個Port(由于專利的影響,這些軟件無法制作為可以直接安裝的二進制軟件包,必須使用Ports Collection 安裝)。openssl位于/usr/ports下面的security子目錄下,當下載其源程序之前,需要設置環(huán)境變量USA_RESIDENT為NO,以避開專利紛爭。
# USA_RESIDENT=NO; export USA_RESIDENT
# cd /usr/ports/security/openssl
# make; make install
安裝好openssl之后,就可以安裝Apache+mod_ssl了。然而為了安裝完全正確,需要清除原先安裝的Apache服務器的其他版本,并且還要清除所有的設置文件及其缺省設置文件,以避免出現(xiàn)安裝問題。***也刪除 /usr/local/www目錄(或更名),以便安裝程序能建立正確的初始文檔目錄。如果是一臺沒有安裝過Apache 服務器的新系統(tǒng),就可以忽略這個步驟,而直接安裝Apache+mod_ssl了。
刪除舊有文件之后,便可進入相應目錄,啟動安裝和編譯進程。
# cd /usr/ports/www/apache13+mod_ssl
# make ; make install
# make certifaction=custom
***一個make用于生成認證證書,由于這個Port直接生成了httpd.conf等缺省文件(如果安裝的時候沒有httpd.conf等文件存在),因此可以直接啟動新的服務器而不需要設置,如果啟動過程因為設置文件的不合適而導致一些小問題,請參照前面對標準Apache服務器的設置說明作出相應修改。
# /usr/local/sbin/apachectl startssl
此時使用start參數(shù)為僅僅啟動普通Apache的httpd守護進程,而不啟動其SSL能力,而startssl 才能啟動Apache的SSL能力。如果之前Apache的守護進程正在運行,便需要使用stop參數(shù)先停止服務器運行。
然后,就可以啟動netscape或其他支持SSL的瀏覽器,輸入URL為:https://ssl_server/ 來查看服務器是否有相應,https使用的缺省端口為443,如果一切正常,服務器將返回mod_ssl的使用手冊,講解SSL以及mod_ssl的技術及其使用方法。