windows下配置apache+https

來源:互聯網
上載者:User
通過https反向 Proxy映射到http地址,可實現以https的方式,訪問普通的http網站。 主要涉及到以下三個設定檔的修改: httpd.conf httpd-ssl.conf httpd-vhosts.conf 具體實現步驟: 1. 修改conf/httpd.conf 取消ssl及proxy相關注釋 #LoadModule ssl_module modules/mod_ssl.so (去掉前面的#號) #Include conf/extra/httpd-ssl.conf (去掉前面的#號) #LoadModule proxy_module modules/mod_proxy.so (去掉前面的#號) #LoadModule proxy_http_module modules/mod_proxy_http.so (去掉前面的#號) 2. 產生認證 cmd進入命令列,進入apache安裝目錄的bin目錄。 2.1 設定OPENSSL_CONFIG配置 執行命令:set OPENSSL_CONF=..\conf\openssl.cnf 2.2 產生服務端的key檔案 執行命令:openssl genrsa -out server.key 1024 完成後,會在bin目錄下產生server.key檔案 2.3 產生簽署申請 執行命令:openssl req -new -out server.csr -key server.key 完成後,會在bin目錄下產生server.csr檔案,其中 Common Name <eg,YOUR name>[] 需要與設定檔中的ServerName一致,否則apache啟動時將會報錯。 2.4 產生CA的key檔案 執行命令:openssl genrsa -out ca.key 1024 完成後,會在目錄bin下產生ca.key檔案 2.5 產生CA自簽署認證 執行命令:openssl req -new -x509 -days 365 -key ca.key -out ca.crt 完成後,會在目錄bin下產生ca.crt檔案,此處填寫的資訊與2.3步中類似。 2.6 產生CA的伺服器簽署認證 執行命令:openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key 此處如果沒有建立好相關目錄,將會報如下錯誤: 根據提示,手動建立相關目錄: 在bin下建立demoCA檔案夾 bin/demoCA 在demoCA下建立index.txt bin/demoCA/index.txt 在demoCA下建立serial.txt,其內容為01,重新命名刪除.txt尾碼 bin/demoCA/serial 在demoCA下建立newcert檔案夾 bin/demoCA/newcerts 完成後,會在bin目錄下產生server.crt檔案。demoCA目錄的最終結構如下:
3. 修改conf/extra/httpd-ssl.conf檔案 3.1 修改https連接埠號碼 根據需要修改httpd-ssl.conf的預設連接埠號碼"443",這裡將所有的443修改為"6443",同時修改ServerName。 具體如下: Listen 6443 <VirtualHost _default_:6443> ServerName localhost 提示:此處如果保持https預設的443連接埠,則訪問的時候,無需再加連接埠號碼。 3.2 修改相關憑證路徑 在apache安裝目錄的conf目錄下,建立一個key目錄,名稱隨意,然後將bin目錄中的相關認證複製到key目錄中。key目錄最終的檔案結構如下: 接著修改conf/extra/httpd-ssl.conf檔案中的如下內容: SSLCertificateFile "xxx/conf/key/server.crt" SSLCertificateKeyFile "xxx/conf/key/server.key" SSLCACertificateFile "xxx/conf/key/ca.crt" #SSLVerifyClient require (去掉前面的#號,進行用戶端驗證時需要) #SSLVerifyDepth 1 (去掉前面的#號,把10改為1,進行用戶端驗證時需要) 4. 重啟apache

在瀏覽器中,輸入https://localhost:6443,如果頁面出現提示 It works! ,則說明https配置成功了。如圖:

5. 項目部署方式 修改conf/extra/httpd-vhosts.conf,新增內容如下: NameVirtualHost *:6443 注意: httpd-vhosts.conf設定檔中原有的NameVirtualHost *:80不要修改,下面新增一行即可。 NameVirtualHost *:6443 5.1 以https的方式部署項目 在conf/extra/httpd-vhosts.conf設定檔中,新增如下內容:

<VirtualHost *:6443>ServerName localhostDocumentRoot D:/javapro/bmsSSLEngine onSSLProxyEngine onSSLCertificateFile "D:/myplatform/Apache2.2/conf/key/server.crt"SSLCertificateKeyFile "D:/myplatform/Apache2.2/conf/key/server.key"<Directory "/">Options NoneAllowOverride AllOrder allow,denyAllow From All</Directory></VirtualHost>
上面的配置含義是,在瀏覽器中輸入 https://localhost:6443 ,即可訪問DocumentRoot對應目錄下的項目。 5.2 以反向 Proxy的方式部署項目 5.2.1 以二級目錄的方式部署反向 Proxy 此時,被代理的虛擬機器,必須要設定別名,否則,首頁之外的其它url,將無法實現代理。 在conf/extra/httpd-vhosts.conf設定檔中,新增如下內容: #部署被代理的虛擬機器local.bms
<VirtualHost *:80>ServerName local.bmsDocumentRoot "D:/javapro/bms"Alias /bms "D:/javapro/bms"<Directory "/">Options NoneAllowOverride AllOrder allow,denyAllow From All</Directory></VirtualHost>
此處,增加了Alias別名配置,以便通過 http://local.bms/bms可以訪問到http://local.bms,為後面的反向 Proxy做準備。 #部署反向 Proxy虛擬機器
<VirtualHost *:6443>ServerName localhostSSLEngine onSSLProxyEngine onSSLCertificateFile "D:/myplatform/Apache2.2/conf/key/server.crt"SSLCertificateKeyFile "D:/myplatform/Apache2.2/conf/key/server.key"ProxyRequests Off<Proxy *>Order allow,denyAllow from all</Proxy>ProxyPass /bms http://local.bms/bmsProxyPassReverse /bms http://local.bms/bms</VirtualHost>
上面的配置含義是,將 https://localhost:6443/bms 的請求,映射到http://local.bms/bms,其中,url結尾處的bms,就相當於一個虛擬二級目錄。 注意:此處被代理的url結尾處,不要加斜杠"/"。 5.2.2 以一級目錄的方式部署反向 Proxy 此時,被代理的虛擬機器,無需設定別名。 在conf/extra/httpd-vhosts.conf設定檔中,新增如下內容: #部署被代理的虛擬機器local.bms
<VirtualHost *:80>ServerName local.bmsDocumentRoot "D:/javapro/bms"<Directory "/">Options NoneAllowOverride AllOrder allow,denyAllow From All</Directory></VirtualHost>
#部署反向 Proxy虛擬機器
<VirtualHost *:6443>ServerName localhostSSLEngine onSSLProxyEngine onSSLCertificateFile "D:/myplatform/Apache2.2/conf/key/server.crt"SSLCertificateKeyFile "D:/myplatform/Apache2.2/conf/key/server.key"ProxyRequests Off<Proxy *>Order allow,denyAllow from all</Proxy>ProxyPass / http://local.bms/ProxyPassReverse / http://local.bms/</VirtualHost>
上面的配置含義是,將 https://localhost:6443的請求,映射到http://local.bms 注意:此處被代理的url結尾處,必須要加斜杠"/"。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.