apache中使用mod_gnutls模块实现多个SSL站点配置(多个HTTPS协议的虚拟主机)
在apache的环境下该如何配置多个HTTPS虚拟主机呢?利用的原理的都是同一个,也就是SNI。基于域名的虚拟主机,即共享同一个IP地址和端口的HTTPS虚拟主机。
SNI―服务器名称指示,是一个TLS的扩展,它使得启用SSL的基于域名的虚拟主机的配置成为可能。打破了每个HTTPS的虚拟主机需要一个IP地址的要求。因此,成本大大降低,因为所有的HTTPS虚拟主机可以共享相同的IP地址和端口,使HTTPS Web服务的更简单。
在apache环境下,需要使用mod_gnutls来实现同一个IP上配置多个HTTPS主机。下面来看看实现过程:
mod_gnutls的网址参见: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的话,需要先安装相对应的依赖包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
创建回话缓存目录
代码如下:
# mkdir -m 0700 /var/cache/mod_gnutls_cache # chown nobody.nobody /var/cache/mod_gnutls_cache
4. 配置虚拟主机
代码如下:
<VirtualHost 10.1.1.22:443> ServerName www.jb51.net:443 GnuTLSEnable on GnuTLSCertificateFile ./ssl/www.jb51.net.public.cer GnuTLSKeyFile ./ssl/www.jb51.net.private.key DocumentRoot "/data/wwwroot/www.jb51.net/webroot" </VirtualHost>
这样访问每个虚拟主机都正常。
相关推荐
Junzizhiai 2020-10-10
LzHeng 2020-07-04
Kafka 2020-09-18
Wepe0 2020-10-30
杜倩 2020-10-29
windle 2020-10-29
minerd 2020-10-28
mengzuchao 2020-10-22
bxqybxqy 2020-09-30
风之沙城 2020-09-24
kingszelda 2020-09-22
大唐帝国前营 2020-08-18
yixu0 2020-08-17
TangCuYu 2020-08-15
xiaoboliu00 2020-08-15
songshijiazuaa 2020-08-15
xclxcl 2020-08-03
zmzmmf 2020-08-03
newfarhui 2020-08-03