2008年7月9日 星期三

Apache IP-Based Virtual Hosts + SSL(適用 Fedora Core 7)

 根據 Apache 官方說明,要使用 Virtual Hosts + SSL 只能用 IP-Based 的 Virtual Hosts,Name-Based 並不支援,要如何使用 IP-Based 實現 Virtual Hosts + SSL 很簡單。

一、在 Linux 上設定多個 IP。

二、申請好 SSL 所需憑證,可參考前一篇的「幫 Linux 向企業 CA 申請網頁伺服器憑證(適用 Fedora Core 7)」或「建立https的SSL憑證(適用RHEL 4及Fedora Core 3)」。

三、申請好 SSL 所需憑證,並放置適當的目錄下。

四、設定 Apache
 1. 編輯 /etc/httpd/conf.d/ssl.conf  Listen 10.1.1.10:443 <- 指定 Listen 443 Port 的 IP
  Listen 10.1.1.20:443
  Listen 10.1.1.30:443


  <VirtualHost 10.1.1.10:443> <- IP-Based Virtual Host
   DocumentRoot “/var/www/html/web1” <- 主目錄
   ServerName web1.xyz.com:443 <- FQDN
   SSLCertificateFile /etc/pki/tls/certs/web1.crt <- 網頁伺服器憑證
   SSLCertificateKeyFile /etc/pki/tls/private/web1.key <- 伺服器金鑰   …
  </VirtualHost>
  <VirtualHost 10.1.1.20:443>
   DocumentRoot “/var/www/html/web2”
   ServerName web2.xyz.com:443
   SSLCertificateFile /etc/pki/tls/certs/web2.crt   SSLCertificateKeyFile /etc/pki/tls/private/web2.key   …
  </VirtualHost>
  <VirtualHost 10.1.1.30:443>
   DocumentRoot “/var/www/html/web3”
   ServerName web3.xyz.com:443
   SSLCertificateFile /etc/pki/tls/certs/web3.crt   SSLCertificateKeyFile /etc/pki/tls/private/web3.key
   …
  </VirtualHost>

 2. 編輯 /etc/httpd/conf/httpd.conf  Listen 10.1.1.10:80 <- 指定 Listen 80 Port 的 IP,也可使用預設值 Listen 80。  Listen 10.1.1.20:80
  Listen 10.1.1.30:80


  <Directory /var/www/html/web1>
   … (內容依自己需求設定)   (如果需要設定 http 自動轉 https,可參考「Apache http自動轉https(轉載)」)
  </Directory>
  <Directory /var/www/html/web2>
   … (內容依自己需求設定)   (如果需要設定 http 自動轉 https,可參考「Apache http自動轉https(轉載)」)
  </Directory>
  <Directory /var/www/html/web3>
   … (內容依自己需求設定)   (如果需要設定 http 自動轉 https,可參考「Apache http自動轉https(轉載)」)
  </Directory>

  <VirtualHost 10.1.1.10:80>
   DocumentRoot "/var/www/html/web1" <-主目錄   ServerName web1.xyz.com <- FQDN
   ErrorLog logs/web1.xyz.com-error_log
   CustomLog logs/web1.xyz.com-access_log common
  </VirtualHost>
  <VirtualHost 10.1.1.20:80>
   DocumentRoot "/var/www/html/web2"
   ServerName web2.xyz.com
   ErrorLog logs/web2.xyz.com-error_log
   CustomLog logs/web2.xyz.com-access_log common
  </VirtualHost>
  <VirtualHost 10.1.1.30:80>
   DocumentRoot "/var/www/html/web3"   ServerName web3.xyz.com
   ErrorLog logs/web3.xyz.com-error_log
   CustomLog logs/web3.xyz.com-access_log common
  </VirtualHost>

 3. 重新啟動 httpd 服務,service httpd restart

沒有留言:

張貼留言