根據 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。
二、申請好 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。
沒有留言:
張貼留言