在apache的環(huán)境下該如何配置多個(gè)HTTPS虛擬主機(jī)呢?利用的原理的都是同一個(gè),也就是SNI。基于域名的虛擬主機(jī),即共享同一個(gè)IP地址和端口的HTTPS虛擬主機(jī)。
SNI—服務(wù)器名稱指示,是一個(gè)TLS的擴(kuò)展,它使得啟用SSL的基于域名的虛擬主機(jī)的配置成為可能。打破了每個(gè)HTTPS的虛擬主機(jī)需要一個(gè)IP地址的要求。因此,成本大大降低,因?yàn)樗械腍TTPS虛擬主機(jī)可以共享相同的IP地址和端口,使HTTPS Web服務(wù)的更簡(jiǎn)單。
在apache環(huán)境下,需要使用mod_gnutls來實(shí)現(xiàn)同一個(gè)IP上配置多個(gè)HTTPS主機(jī)。下面來看看實(shí)現(xiàn)過程:
mod_gnutls的網(wǎng)址參見:https://mod.gnutls.org
1. 安裝mod_gnutls
代碼如下:
# yum install httpd-devel gnutls-devel
# wget http://www.outoforder.cc/downloads/mod_gnutls/mod_gnutls-0.2.0.tar.bz2
# tar -xjvf mod_gnutls-0.2.0.tar.bz2
# cd mod_gnutls-0.2.0
# ./configure --prefix=/usr
# make
如果要安裝高版本的gnutls的話,需要先安裝相對(duì)應(yīng)的依賴包libnettle gmplib。下載地址:http://www.gnutls.org/download.html ftp://ftp.gnutls.org/gcrypt/gnutls
mod_gnutls模塊依賴dhfile和rsafile文件.
3. 配置httpd.conf
代碼如下:
Listen 10.1.1.22:443
LoadModule gnutls_module modules/mod_gnutls.so
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
GnuTLSCache dbm "/var/cache/mod_gnutls_cache"
GnuTLSCacheTimeout 300
NameVirtualHost 10.1.1.22:443
創(chuàng)建回話緩存目錄
代碼如下:
# mkdir -m 0700 /var/cache/mod_gnutls_cache
# chown nobody.nobody /var/cache/mod_gnutls_cache
4. 配置虛擬主機(jī)
代碼如下:
<VirtualHost 10.1.1.22:443>
ServerName www.companysz.com:443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/www.companysz.com.public.cer
GnuTLSKeyFile ./ssl/www.companysz.com.private.key
DocumentRoot "/data/wwwroot/www.companysz.com/webroot"
</VirtualHost>
<VirtualHost 10.1.1.22:443>
ServerName www.companysz.com:443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/www.companysz.com.public.cer
GnuTLSKeyFile ./ssl/www.companysz.com.private.key
DocumentRoot "/data/wwwroot/www.companysz.com/webroot"
</VirtualHost>
這樣訪問每個(gè)虛擬主機(jī)都正常。
新聞熱點(diǎn)
疑難解答
圖片精選