SSL非常適合HTTP,因為它能提供一些保護,即使只有通訊一方是結果認證的,在因特網上處理HTTP事物時,通常只有服務器是結果認證的,本文解釋如何使用OpenSSL和TinyCA在OpenSuse 10.2服務器上安裝一個虛擬主機。
◆步驟1:創建index頁面
在“Apache虛擬主機快速搭建攻略”一文中,我們已經做了這件事情,現在只需要創建下面的目錄:
mkdir /srv/www/htdocs/ssl |
然后可以將你的web頁面放入這個目錄,我們只創建一個index.html文件,該文件的內容顯示服務器的類型,文件內容樣例:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> <title></title> </head> <body> <div style="text-align: center;"><span style="font-weight: bold;">This is my secure webserver working on Port 443.<br> <a href="> </body> </html> |
◆步驟2:在端口443上配置基于ip的虛擬主機
OpenSuse在/etc/apache2/vhosts.d目錄下存放虛擬主機的配置文件,在啟動過程中,Apache會自動應用該目錄下所有的.conf文件,使用ssl模板,可以很輕松地創建一個新的配置文件:
cd /etc/apache2/vhosts.d/
cp vhost-ssl.template ssl.conf |
下面這些行是你應該做適當修改的:
VirtualHost 192.168.33.234:443 用你的ip地址替換這里的ip地址,保留443端口
DocumentRoot 使用你在步驟1中創建的目錄
SSLCertificateFile 使用步驟3中創建的服務器證書
SSLCertificateKeyFile 使用步驟3中創建的服務器密鑰文件
SSLCACertificateFile 使用步驟3中創建的CA證書 |
這個配置文件最后看起來象:
<IfDefine SSL> <IfDefine !NOSSL>
## ## SSL Virtual Host Context ## <VirtualHost 192.168.33.234:443> DocumentRoot "/srv/www/htdocs/ssl/" ServerAdmin webmaster@linux-tip.netThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it ErrorLog /var/log/apache2/error_log TransferLog /var/log/apache2/access_log SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /srv/www/etc/server.crt SSLCertificateKeyFile /srv/www/etc/server.key SSLCACertificateFile /srv/www/etc/ca-cert.crt #SSLVerifyClient require #SSLVerifyDepth 1 <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/srv/www/htdocs/ssl/"> Options All Order Allow,Deny Allow from all </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog /var/log/apache2/ssl_request_log ssl_combined </VirtualHost> </IfDefine> </IfDefine> |
重要提示:要在Apache服務器上啟用SSL支持,必須配置/etc/sysconfig/apache2文件,請將下面這行(大約在132行)修改為:
APACHE_SERVER_FLAGS="SSL" |