日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

apache https反向代理设置方案

發布時間:2024/1/1 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 apache https反向代理设置方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


首先介紹一下何為反向代理:

  一.反向代理的概念
   反向代理也就是通常所說的WEB服務器加速,它是一種通過在繁忙的WEB服務器和Internet之間增加一個高速的WEB緩沖服務器(即:WEB反向代理服務器)來降低實際的WEB服務器的負載。
   Web服務器加速(反向代理)是針對Web服務器提供加速功能的。它作為代理Cache,但并不針對瀏覽器用戶,而針對一臺或多臺特定Web服務器(這也是反向代理名稱的由來)。實施反向代理(如上圖所示),只要將Reverse Proxy Cache設備放置在一臺或多臺Web服務器前端即可。當互聯網用戶訪問某個WEB服務器時,通過DNS服務器解析后的IP地址是Reverse Proxy Server的IP地址,而非原始Web服務器的IP地址,這時Reverse Proxy Server設備充當Web服務器,瀏覽器可以與它連接,無需再直接與Web服務器相連。因此,大量Web服務工作量被卸載到反向代理服務上。不但能夠防止外部網主機直接和web服務器直接通信帶來的安全隱患,而且能夠很大程度上減輕web服務器的負擔,提高訪問速度。
  二.win+apache實現ssl
   首先,到http://hunter.campbus.com/去下載和自己的apache版本相同的的Apache_xxx-xxxOpenssl_xxx-Win32.zip。
   我用的是Apache_2.0.59,
   安裝程序地址: http://apache.justdn.org/httpd/binaries/win32/apache_2.0.59-win32-x86-no_ssl.msi
   Apache_2.0.59-Openssl_0.9.8c-Win32.zip地址:
   http://209.61.202.80/apache/Apache_2.0.59-Openssl_0.9.8c-Win32.zip)。
   解壓縮后找到這5個文件mod_ssl.so(modules目錄),ssl.conf,ssl.default.conf(conf目錄, 其中default.conf作為備份),libeay32.dll, ssleay32.dll(這2個都在bin目錄)。把它們全都復制到你自己的apahce下的對應目錄 。?
  ###############################################################################?
   接下來,更改設置文件?
   對于httpd.conf和ssl.conf,如果你的服務器沒有域名,那么servername就填ip好了。?
  比如:ServerName 172.18.42.123:80(httpd.conf)?
  ServerName 172.18.42.123:443(ssl.conf)?
  ?
   打開httpd.conf:?
   找到#LoadModule ssl_module modules/mod_ssl.so,去掉前面的‘#‘,這樣就在啟動時加載了ssl模塊。?
  
   打開ssl.conf:?
  找到#;和# ;,把前面的’#‘號都去掉,否則啟動apache時還要加參數,麻煩。?
   如下設置:?
   SSLMutex default
   SSLCertificateFile conf/server.crt(服務器證書的位置)?
   SSLCertificateKeyFile conf/server.key (服務器私鑰的位置)?
   SSLCACertificateFile conf/ca.crt (CA根證書的位置,進行客戶端驗證時需要)
   上面的文件被放到了conf目錄下。
   DocumentRoot "xxxxx" (指向要ssl加密認證的文檔目錄,比如"f:/http")?
   SSLVerifyClient require (去掉前面的‘#’號,進行客戶端驗證時需要)?
   SSLVerifyDepth 1 (去掉前面的‘#’號,把10改為1,進行客戶端驗證時需要)?
  
  ##############################################################################?
   現在,就要制作證書了?
   去openvpn.net下載并安裝openvpn。?
   http://openvpn.net/release/openvpn-2.0.9-install.exe
   這是一個虛擬個人網絡制作工具,他能完美的在win(linux,BSD也行)下制作根、服務器、客戶端證書。?
   安裝完畢后,開始-程序-附件-命令提示符,進到openvpn的easy-rsa目錄,比如:?
   c:\program files\openvpn\easy-rsa>
   輸入: init-config 回車?
   會產生幾個文件,切換出來,打開vars.bat文件,修改其中的KEY_COUNTRY(國家2位字母), KEY_PROVINCE(省2位字母), KEY_CITY(城市), KEY_ORG(組織), KEY_EMAIL(電子郵箱)這幾個參數,免的后面制證時?
  
   反復輸入麻煩。保存退出,繼續使用命令提示符。?
   依次輸入以下兩個命令,當然是分別回車嘍:?
   vars?
   clean-all (這兩個是準備工作)?
  
  ####################################################################################
   1. 建立CA根證書?
   輸入build-ca 回車(這個就是建立CA根證書啦)?
   然后顯示:?
   ai:/usr/share/openvpn/easy-rsa # ./build-ca?
   Generating a 1024 bit RSA private key?
   ............++++++?
   ...........++++++?
   writing new private key to 'ca.key'?
   -----?
   You are about to be asked to enter information that will be incorporated into your certificate request.?
   What you are about to enter is what is called a Distinguished Name or a DN.?
   There are quite a few fields but you can leave some blan k?
   For some fields there will be a default value,?
   If you enter '.', the field will be left blank.?
  -----?
   Country Name (2 letter code) [KG]: 國家名2位字母,默認的參數就是我們剛才修改過的。?
   State or Province Name (full name) [NA]: 省、州名2位字母?
   Locality Name (eg, city) [BISHKEK]: 城市名?
   Organization Name (eg, company) [OpenVPN-TEST]: 組織名?
   Organizational Unit Name (eg, section) []: 組織里的單位名?
   Common Name (eg, your name or your server's hostname) []:這個是關鍵,應該輸入頒發根證書單位的域名?
  ,不過因為是根證書,所以怎么填都無所謂。只有服務器證書才需要認真填。?
   Email Address [me@myhost.mydomain]: 電子郵箱?
  
   好了,CA根證書制作完成!在keys目錄下,它的名字就叫ca.crt,CA的私鑰是ca.key?
  
  
  #######################################################################?
   2. 制作服務器證書:?
   在命令提示符下,輸入?
   build-key-server server 回車?
   你會看到和上面很相似的東西,但要注意
   這里的Common Name (eg, your name or your server's hostname) []: 這個才是真正的關鍵。這里應該輸入服務器的域名比如www.xxx.com。?
  如果沒有域名,就應該填ip,與httpd.conf和ssl.conf里的設置對應,?
   ServerName 172.18.42.123:80(httpd.conf)?
   ServerName 172.18.42.123:443(ssl.conf)?
   也就是說填:172.18.42.123
  
   接下來看到 a challenge password []:填不填隨便?
   an optional company name []: 填不填隨便
  
   sign the certificate? [y/n] 敲y回車。用CA根證書對服務器證書簽字認證。?
   1 out 1 certificate requests certified,commit? [y/n] 敲y回車,確認。?
  
   好了,建好了在keys目錄下的server.crt(證書)和server.key(私鑰) #######################################################################?
   3. 制作客戶端證書:?
   在命令提示符下,輸入?
   build-key client1 回車?
   又是一通國家省市組織等等,comman name也是隨便填的。?
   然后 :
   a challenge password []:填不填隨便
   an optional company name []: 填不填隨便
  
   sign the certificate? [y/n] 敲y回車。用CA根證書對客戶端證書簽字認證。?
   1 out 1 certificate requests certified,commit? [y/n] 敲y回車,確認。?
  
   好了,建好了在keys目錄下的client1.crt(客戶端證書)和client1.key(私鑰)?
  
   等等, .crt的客戶端證書是不能使用的,必須把它轉化為.pfx格式的文件!!?
   所以,還是在命令提示符下,輸入?
   openssl 回車?
   看到openssl>;?
   再輸入 :
   pkcs12 -export –in keys/client1.crt -inkey keys/client1.key -out keys/client1.pfx 回車,?
   看到Enter export password:會要求你建立客戶端證書的輸出密碼
   verifying-Enter export password再確認一遍,好了!?
  ######################################################################## 把keys目錄下的ca.crt和server.crt,server.key都復制到apache的conf目錄下,(ssl.conf需要) ca.key自己保留吧,找個合適的地方儲存起來.?
  
  
  #########################################################################?
   客戶端安裝證書?
   打開internet explorer(IE),工具-internet選項-內容-證書,點選'個人' 再點擊導入,把客戶端證書client1.pfx導入到個人組里(別忘了擴展名是pfx)。這里還要輸入剛才建立的輸出密碼才能導入呢。?
   接著,點選'受信任的根證書頒發機構',點擊導入,把CA根證書ca.crt導入到受信任的根證書頒發機構里。?
  #########################################################################   
    好啦,重新啟動apache,打開IE,?
    在地址欄里輸入https://172.18.42.123或者域名,彈出個窗口要選擇個人的數字證書。?
   點選,然后確定。?
   如果服務器證書的common name填寫正確的話,你就可以直接進入網站了,看到右下角的小鎖頭(可靠的SSL128位)。?
   如果服務器證書的common name填寫不正確,就會彈出個‘安全警報’框,告訴你3條:?
   1.安全證書由信任的站點頒發?
   (如果說是由不信任的站點頒發,那就是你的ca根證書ca.crt沒有導入到ie的受信任的根證書頒發機構里)?
  
   2.安全證書的日期有效?
   (這個日期缺省是10年,可以在openvpn的easy-rsa目錄下的openssl.cnf里調整修改,然后重新制作一整套證書(openssl.cnf看起來像撥號網絡的快捷方式,要用記事本,寫字板打開修改))?
  ?
   3.“安全證書上的名稱無效,或者與站點名稱不匹配”?
  這就是服務器證書的common name填寫不正確所致,不過這也沒關系,有人好像愿意這樣。我是不想看到這個警告框,煩人。?
  
   即使有安全警報,你仍能進入網站,看到右下角的小鎖頭(可靠的SSL128位)?
  
  
  #################################?
   最后,成功啦!用吧。?
  三.設置反向代理
   修改conf\httpd.conf文件
   先啟動兩個模塊
   LoadModule proxy_module modules/mod_proxy.so
   LoadModule proxy_http_module modules/mod_proxy_http.so
   然后在文件最后加上
   SSLProxyEngine on?
   ProxyRequests Off
   ProxyPass / https://10.6.177.66
   ProxyPassReverse / https://10.6.177.66?
  ?

   ok了,重新啟動apache,輸入https://172.18.42.123 ,什么效果,自己試試就知道了!



<源自我在天涯的博客,已不再維護〉

總結

以上是生活随笔為你收集整理的apache https反向代理设置方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。