apache下mod_gnutls实现多HTTPS虚拟主机

作者:袖梨 2022-11-14

多HTTPS虚拟主机的配置。那么在apache的环境下该如何配置呢?利用的原理的都是同一个,也就是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

2. apache加载mod_gnutls模块

代码如下 复制代码

# cp mod_gnutls-0.2.0/src/.libs/libmod_gnutls.so /usr/lib/httpd/modules/mod_gnutls.so
# cp mod_gnutls-0.2.0/data/{dh,rsa}file /etc/httpd/conf/

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


4. 配置虚拟主机

代码如下 复制代码


ServerName 你的域名2:443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/你的域名2.public.cer
GnuTLSKeyFile ./ssl/你的域名2.private.key
DocumentRoot "/data/wwwroot/你的域名2/webroot"


ServerName 你的域名:443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/你的域名.public.cer
GnuTLSKeyFile ./ssl/你的域名.private.key
DocumentRoot "/data/wwwroot/你的域名/webroot"


这样访问每个虚拟主机都正常。

相关文章

精彩推荐