21.3虚拟接口
建立一个虚拟接口包括两个步骤。首先在TCP/IP层次上建立虚拟接口,其次告诉Apache服务程序已经建立虚拟接口。虚拟接口的命名方式是interface:instance,例如:eth0:0。虚拟接口的配置命令如下:
sudo ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0 up
配置完之后,定义接口还必须出现在/etc/network/interface文件中,虚拟接口eth0:0的相应配置如下:
iface eth0:0 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 192.168.1.255
接着在apache的配置文件中添加VirtualHost子句,每个子接口对应一条子句,例如:
ServerName
ServerAdmin webmaster@
DocumentRoot /var/www/company
ErrorLog logs/www,company.com-error_log
CustomLog logs/-access_log combined
ScriptAlias /cgi-bin/ /var/www/cgi-bin/company
有了基于名字的虚拟主机,多个DNS域名就可以指向同一个IP。Apache的配置也类似,但只要指定Apache在哪个主IP上监听发来的虚拟主机名的请求,并且在VirtualHost主句中排除这个IP地址。
ServerName
ServerAdmin webmaster@
DocumentRoot /var/www/company
ErrorLog logs/www,company.com-error_log
CustomLog logs/-access_log combined
ScriptAlias /cgi-bin/ /var/www/cgi-bin/company
21.4 SSL
使用SSL的Web网站拥有者必须产生一个CSR(签发证书请求),其中包含一个公钥和一个公司名称。之后,证书必须由一个称为CA(证书授权机构)的可信来源签发。CA返回的签发证书包含网站的公钥和公司名称,还有CA的背书。
Web浏览器内置有CA表,他们接受由这些CA签发的证书.浏览器如果许可给你网站签发证书的CA,那么它就会核对你的证书,取得你的公钥,然后用这个公钥发送只有你的网站才能揭秘的消息。
创建一个证书发到CA相当简单。
首先为Apache服务器创建一个1024位的RSA私钥:
openssl genrsa -des3 -out server.key 1024
这里会提示输入并确认加密服务器密钥的口令字。把server.key这个文件备份好,并且记住输入的加密口令字。可以使用下面命令看看密钥的详细数字内容:
openssl rsa -noout -text -in server.key
接下来创建一个CSR,把刚才生成的服务器密钥加进这个CSR:
openssl req -new -key server.key -out server.csr
在提示输入"common name"的时候,输入服务器的完整域名。
可以使用以下命令查看生成好的CSR的详细内容:
openssl req -noout -text -in server.csr
现在就可以把server.csr发给CA签发了。
下面配置Apache使用SSL
要配置Apache使用SSL,首先在配置文件里面启用SSL模块,增加下面一行:
LoadModule ssl_module libexec/mod_ssl.so
然后给SSl端口加上一个VirtualHost指令:
ServerName
ServerAdmin webmaster@
DocumentRoot /var/www/company
ErrorLog logs/www,company.com-error_log
CustomLog logs/-access_log combined
ScriptAlias /cgi-bin/ /var/www/cgi-bin/company
SSLEngine on
SSLCertificateFile /usr*****
SSLCertificateKeyFile /usr*****
注意IP地址后面加上443端口和告诉Apache去哪里找密钥和签发证书的SSL指令。
这样重启Apache的时候,就会要求输入用于server.key的加密口令,就不能自启动了。如果愿意,可以去掉对私钥的加密:
cp server.key server.key.orig
openssl rsa -in server.key.orig -out server.key
chmod 400 server.key server.key.orig
阅读(1040) | 评论(0) | 转发(0) |