全部用startssl生成的證書,配置Apache使其支持SSL


Apache的編譯安裝見這篇:

http://www.cnblogs.com/yjken/p/3921840.html

 

網上查閱了一大批資料,得知自己生成的證書是會被瀏覽器提示“證書不安全”的,我也就沒有去生成證書,而是直接去了startssl 申請了一個免費的證書,據說startssl也是全球唯一的一個可以申請免費ssl證書的地方,並且是被主流瀏覽器(firefox,chrome,IE,safari)認可的,所以,對於安全性要求不高的情景,免費的證書已經完全滿足需求了,當然,如果你的安全性要求比較高,startssl也是有更高級的安全證書支持的,不過,這些更安全的證書可就是收費的了。

簡單說下申請證書的步驟:

1. 去www.startssl.com注冊一個帳號

2. 因為startssl不是那種常見的帳號密碼登錄的模式,而是不需要密碼,甚至也不需要帳號,而是安裝一個startssl的個人證書到你的瀏覽器上,下次進入這個網站,直接在彈出的證書上點確認就可以了,所以,第一次注冊后,根據它的引導,會生成一張個人證書,安裝至你的瀏覽器上,這個證書只是用來登錄startssl網站用的,沒有其它用處。

 

3. 驗證郵箱,驗證域名,startssl需要確認你確實是某域名的所有者,所以它會首先要求驗證域名的所有權,驗證步驟也很簡單,假設你的域名是abc.com , 那么它會將驗證字符串發送到諸如webmaster@abc.com這樣的郵箱,你打開這個郵箱,把驗證字符串拷貝並粘貼過去,就算成功了,很簡單。

4. 生成證書,首先會生成一張頂級域證書,再生成一張二級域證書(整個步驟根據它的向導來,就可以了),期間有個密碼,是必須要記住的,不然生成的證書,就會沒法用了。

最終會得到下面幾個文件:

ca.pem  ,   ssl.crt    ,   ssl.key   ,   sub.class1.server.ca.pem

其實這張ssl.key是加密過的,直接配置到apache上也是可以的,只是這樣很不方便,因為,每次啟動apache都必須輸入一遍密碼,所以,你可以直接在線解密這個私鑰的.

這樣生成的私鑰,配置到Apache上,就不需要啟動Apaceh時輸入密碼短語了。

 

配置如下:

<VirtualHost *:443>
    SSLEngine On
    SSLCertificateFile certificate/ssl.crt
    SSLCertificateKeyFile certificate/ssl.key
    SSLCertificateChainFile certificate/sub.class1.server.ca.pem
    SSLCACertificateFile certificate/ca.pem

    ServerAdmin  jken@abc.com
    DocumentRoot "~/www/abc"
    ServerName www.abc.com:443
    ErrorLog "logs/error/abc_error_log"
    CustomLog "logs/custom/abc_log" common
</VirtualHost>

主要是這幾行:

    SSLEngine On
    SSLCertificateFile certificate/ssl.crt
    SSLCertificateKeyFile certificate/ssl.key
    SSLCertificateChainFile certificate/sub.class1.server.ca.pem
    SSLCACertificateFile certificate/ca.pem

這個服務器名稱需要增加443,端口號:

ServerName www.abc.com:443

這樣,配置就完成了,不過,如果你這個時候重啟Apache,你會發現用https訪問不了網站,我當時配置的時候,就忽略了這一點,結果找了一大堆資料,還是不行,沒辦法,只好自己研究了,去服務器上,用netstat命令查看,發現,完全沒有開啟433監聽端口,也就是說Apache的配置上還漏了一條,我在“Listen 80”下面,又加了一行“Listen 443”

Listen 80
Listen 443

這樣,再重啟Apache,使用https方式,打開網站,暢通無阻,問題解決。

 

對了,如果你的Apache不是我的安裝方式,可能還會出問題,就是,你可能壓根就沒有安裝ssl,我在安裝Apache的時候,是有這條的:

with-ssl=/usr/include/openssl

這樣,安裝了ssl功能,如果不是編譯成靜態的,而是動態庫的話,還得去掉下面這行的注釋:

LoadModule ssl_module modules/mod_ssl.so

好了,這樣,一般是不會有什么問題的了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM