該文配置的https僅在apache2.2.25+openssl<1.0.0版本下通過(guò)測(cè)試,在openssl>=1.0.1測(cè)試不通過(guò)(只有openssl版本>=1.0.1才能夠使用TLSv1.2協(xié)議)。其他apache版本沒(méi)有測(cè)試過(guò)。
大致配置步驟:
1. apache需要有如下幾個(gè)模塊聂使,才能夠開(kāi)啟SSL:
bin/openssl.exe、bin/ssleay32.dll丢早、bin/libeay32.dll板鬓、modules/mod_ssl.so
ps: 如果找不到這些文件,可以在自帶有OpenSSL的apache安裝目錄下找到對(duì)應(yīng)文件覆履。請(qǐng)注意openssl版本
2. 申請(qǐng)SSL證書(shū)(在阿里云官網(wǎng)CA證書(shū)服務(wù)申請(qǐng))蹋盆,有個(gè)人域名型DV,企業(yè)型OV硝全,根據(jù)需要申請(qǐng)相應(yīng)證書(shū)栖雾。
申請(qǐng)過(guò)程中,有域名驗(yàn)證的需要伟众,詳見(jiàn):https://help.aliyun.com/knowledge_detail/48014.html析藕;
申請(qǐng)通過(guò)后,下載相應(yīng)證書(shū)文件凳厢,按照阿里云的安裝配置提示操作(相應(yīng)配置可查看步驟3的內(nèi)容):
ps: 關(guān)于證書(shū)文件的配置账胧,最好是填寫(xiě)證書(shū)的絕對(duì)路徑。
3. 需要在apache的安裝目錄下找到conf/httpd.conf文件数初,找到如下語(yǔ)句并去掉注釋找爱,
#LoadModule ssl_module modules/mod_ssl.so#Include conf/extra/httpd-ssl.conf
ps: 可以不注釋httpd-ssl.conf,但是需要在httpd.conf配置SSL相關(guān)內(nèi)容泡孩,
配置可參考如下示例(httpd-ssl.conf也是相同內(nèi)容车摄,根據(jù)阿里云CA證書(shū)的文檔配置):
示例:
Listen 443
NameVirtualHost *:443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLPassPhraseDialog builtin
SSLSessionCache "dbm:C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache"
SSLSessionCacheTimeout 300
SSLMutex default
############## for Dscake #######################
<VirtualHost *:443>
ServerName xcx.ews88.com:443
ServerAlias xcx.ews88.com
DocumentRoot "D:/www/htdocs/Dscake"
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
SSLCertificateFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cert/public.pem"
SSLCertificateKeyFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cert/214273850970747.key"
SSLCertificateChainFile "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cert/chain.pem"
JkMount /*.jsp Dscake
JkMount /*.do Dscake
JkMount /*.html Dscake
<Directory "D:/www/htdocs/Dscake">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
Allow from all
</Directory>
<IfModule dir_module>
DirectoryIndex index.jsp
</IfModule>
SetEnv force-proxy-request-1.0.1
SetEnv proxy-nokeepalive 1
CustomLog "|bin/rotatelogs D:/apacheLogs/Dscake_logs/Dscake_access_log_%Y_%m_%d_%H.log 3600 480" combined
ErrorLog "|bin/rotatelogs D:/apacheLogs/Dscake_logs/Dscake_error_log_%Y_%m_%d_%H.log 3600 480"
</VirtualHost>
############## for Dscake #######################
4. 重啟apache,查看是否啟動(dòng)成功仑鸥。
注意事項(xiàng):
當(dāng)apache啟動(dòng)不成功時(shí)吮播,出現(xiàn)“the requested operation has failed”,可以按下列方法操作:
檢查錯(cuò)誤方法:進(jìn)入cmd 然后進(jìn)入 Apache安裝目錄(具體為你自己的安裝目錄)\bin> httpd.exe -w -n "Apache2" -k start
(引號(hào)中的Apache2修改為你的Apache服務(wù)名,我的是2.2.4版,服務(wù)名就是Apache2,可以到計(jì)算機(jī)服務(wù)里找)
等于重新啟動(dòng)眼俊,這樣會(huì)打印出錯(cuò)誤信息意狠。apache重啟失敗,報(bào)錯(cuò)信息Syntax error on line 62 of C:/Program Files (x86)/Apache Software Foundation/Apache2.2/conf/extra/httpd-ssl.conf:
SSLSessionCache: Invalid argument: size has to be >= 8192 bytes
解決辦法:
將conf\extra\httpd-ssl.conf中SSLSessionCache行修改成下面這樣即可SSLSessionCache "dbm:C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache"
即將SSLSessionCache "shmcb:C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/ssl_scache(512000)"
即改成dbm疮胖。
附錄:
- apache升級(jí)openssl
參考文章:http://blog.csdn.net/jayxujia123/article/details/25240511
注意:如果你是64位的windows安裝了apache环戈,那你在升級(jí)openssl時(shí)闷板,需要先用32位的openssl安裝包安裝,然后找到安裝后的bin目錄下的openssl.exe院塞、libeay32.dll遮晚、ssleay32.dll并替換apache/bin目錄下的相應(yīng)文件,才能夠升級(jí)成功拦止。