1、下載帶有openSSL的apache安裝包,我下載的為apache_2.2.11-win32-x86-openssl-0.9.8i.msi,安裝后確認(rèn)一下bin路徑下的openssl.exe,ssleay32.dll和libeay32.dll,無誤進行下一步。
2、修改兩個配置文件,一個為conf/httpd.conf,另一個為conf/extra/httpd-ssl.conf
(a)修改httpd.conf
為了使apache啟動的時候調(diào)用ssl的服務(wù),我們需要在配置文件中做一些修改。找到以下兩句話并去掉注釋,則可以開啟apache的時候啟動ssl服務(wù):
#LoadModule ssl_module modules/mod_ssl.so
#Include conf/extra/httpd-mpm.conf
(b)修改httpd-ssl.conf
修改的主要是我們生成的證書的路徑(我把路徑設(shè)置為conf下的key目錄,把生成的證書放進這個目錄,接下來會說怎么生成)
SSLCertificateFile xxx/conf/key/server.crt (服務(wù)器證書的位置)
SSLCertificateKeyFile xxx/conf/key/server.key (服務(wù)器私鑰的位置)
SSLCACertificateFile xxx/key/conf/ca.crt (CA根證書的位置,進行客戶端驗證時需要)
#SSLVerifyClient require (去掉前面的‘#’號,進行客戶端驗證時需要)
#SSLVerifyDepth 1 (去掉前面的‘#’號,把10改為1,進行客戶端驗證時需要)
打開httpd-ssl.conf,ctrl+f 搜關(guān)鍵字修改就可以了。
3、生成服務(wù)端和客戶端的證書
win+R:cmd進入命令行,進去apache安裝目錄的bin文件夾,執(zhí)行命令設(shè)置一下openssl的配置:setOPENSSL_CONF=..\conf\openssl.cnf
(a)生成服務(wù)端的私匙
執(zhí)行命令:openssl gensa -out server.key 1024,在目錄bin下生成server.key文件
(b)生成簽署申請
執(zhí)行命令:openssl req -new -out server.csr -key server.key -conf..\conf\openssl.cnf,在目錄bin下生成server.csr文件,這個過程中要填入一些信息,按照提示要求填就可以了,但是要記住Common Name必須和httpd.conf中的serverName一致,不然apache啟動的時候會報錯。
(c)生成CA私匙
執(zhí)行命令:openssl gensa -out ca.key 1024,在目錄bin下生成ca.key文件
(d)生成CA生成自簽署證書
執(zhí)行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt -conf..\conf\openssl.cnf,在目錄bin下生成ca.crt文件
(e)生成CA的服務(wù)器簽署證書
執(zhí)行命令:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -conf..\conf\openssl.cnf 我在這里報錯了,按照網(wǎng)上的說法,在當(dāng)前目錄下建立一個demoCA目錄,在里面創(chuàng)建一個index.txt空文件,一個名為serial,內(nèi)容為01的文件,以及一個文件夾newcerts,再執(zhí)行一次就可以了
4、把當(dāng)前文件夾中的server.crt,server.key和ca.crt文件復(fù)制到步驟2所說的目錄conf/key下
5、為了方便,我把httpd.conf和httpd-ssl.conf文件中的ServerName分別改為
127.0.0.1:8080 (有些軟件會占用80這個端口,所以改成8080)
127.0.0.1:443
6、重啟apache,執(zhí)行兩個命令net stop Apache2.2和net start Apache2.2,假如遇到apache無法啟動的時候,可以選我的電腦-》管理-》事件檢查器-》應(yīng)用程序日志,打開apache的錯誤報告,會有提示哪里出錯了,一般都可以找到原因
7、打開IE,輸入127.0.0.1:8080出現(xiàn)It works。輸入https://127.0.0.1:443的時候會彈出一個驗證證書的地方,點擊取消發(fā)現(xiàn)沒能成功。上網(wǎng)查了一下,原來還要生成一個 .pfx 的證書并導(dǎo)入到IE中去。
打開剛才的命令行,執(zhí)行命令openssl pkcs12 -export -in ca.crt -inkey ca.key -out ca.pfx,在bin下面生成一個ca.pfx的文件,中間有個輸入密碼的過程,要記住這個密碼。打開IE瀏覽器-》工具-》Internet選項-》內(nèi)容-》證書,按照提示導(dǎo)入,這里要輸入剛才生成 .pfx 過程中輸入的密碼。導(dǎo)入之后,打開瀏覽器輸入https://127.0.0.1:443出現(xiàn) It works。搞掂。!