apache中使用mod_gnutls模块实现多个SSL站点配置(多个HTTPS协议的虚拟主机)
2016-10-13 11:41
881 查看
原地址:http://www.poluoluo.com/server/201409/303045.html
在apache的环境下该如何配置多个HTTPS虚拟主机呢?利用的原理的都是同一个,也就是SNI。基于域名的虚拟主机,即共享同一个IP地址和端口的HTTPS虚拟主机。SNI—服务器名称指示,是一个TLS的扩展,它使得启用SSL的基于域名的虚拟主机的配置成为可能。打破了每个HTTPS的虚拟主机需要一个IP地址的要求。因此,成本大大降低,因为所有的HTTPS虚拟主机可以共享相同的IP地址和端口,使HTTPS Web服务的更简单。在apache环境下,需要使用mod_gnutls来实现同一个IP上配置多个HTTPS主机。下面来看看实现过程:mod_gnutls的网址参见:https://mod.gnutls.org1. 安装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.cnblogs.com:443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/www.cnblogs.com.public.cer
GnuTLSKeyFile ./ssl/www.cnblogs.com.private.key
DocumentRoot "/data/wwwroot/www.cnblogs.com/webroot"
</VirtualHost>
<VirtualHost 10.1.1.22:443>
ServerName www.cnblogs.com:443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/www.cnblogs.com.public.cer
GnuTLSKeyFile ./ssl/www.cnblogs.com.private.key
DocumentRoot "/data/wwwroot/www.cnblogs.com/webroot"
</VirtualHost>
这样访问每个虚拟主机都正常。
在apache的环境下该如何配置多个HTTPS虚拟主机呢?利用的原理的都是同一个,也就是SNI。基于域名的虚拟主机,即共享同一个IP地址和端口的HTTPS虚拟主机。SNI—服务器名称指示,是一个TLS的扩展,它使得启用SSL的基于域名的虚拟主机的配置成为可能。打破了每个HTTPS的虚拟主机需要一个IP地址的要求。因此,成本大大降低,因为所有的HTTPS虚拟主机可以共享相同的IP地址和端口,使HTTPS Web服务的更简单。在apache环境下,需要使用mod_gnutls来实现同一个IP上配置多个HTTPS主机。下面来看看实现过程:mod_gnutls的网址参见:https://mod.gnutls.org1. 安装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.cnblogs.com:443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/www.cnblogs.com.public.cer
GnuTLSKeyFile ./ssl/www.cnblogs.com.private.key
DocumentRoot "/data/wwwroot/www.cnblogs.com/webroot"
</VirtualHost>
<VirtualHost 10.1.1.22:443>
ServerName www.cnblogs.com:443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/www.cnblogs.com.public.cer
GnuTLSKeyFile ./ssl/www.cnblogs.com.private.key
DocumentRoot "/data/wwwroot/www.cnblogs.com/webroot"
</VirtualHost>
这样访问每个虚拟主机都正常。
相关文章推荐
- apache中使用mod_gnutls模块实现多个SSL站点配置(多个HTTPS协议的虚拟主机)
- Apache 实现http协议自动转成https协议,Apache 防DDOS攻击 使用mod_rpaf模块 mod_evasive模块
- apache mod_gnutls实现多HTTPS虚拟主机
- HTTP协议的介绍,Web服务器配置,虚拟主机的配置,如何用SSL实现HTTPS。
- Apache使用ssl模块配置HTTPS
- Nginx实现多个站点使用一个端口(配置Nginx的虚拟主机)
- Apache 使用ssl模块配置HTTPS
- Apache 使用ssl模块配置HTTPS
- Apache 使用ssl模块配置HTTPS
- Apache 使用ssl模块配置HTTPS
- apache下利用mod_vhost_alias模块实现不重启添加虚拟主机
- 【转】基于apache mod_vhost_alias模块的虚拟主机配置教程---方法似乎可以,留着以后备用
- httpd-2.4.9.tar.bz2的编译安装配置以及CGI、虚拟主机、https、mod_deflate、mod_status的实现。
- Nginx实现多个站点使用一个端口(配置Nginx的虚拟主机)
- 基于 Apache 在本地配置多个虚拟主机,实现本地多站点访问
- Apache之——多虚拟主机多站点配置的两种实现方案
- Nginx实现多个站点使用一个端口(配置Nginx的虚拟主机)
- Nginx实现多个站点使用一个端口(配置Nginx的虚拟主机)
- Nginx实现多个站点使用一个端口(配置Nginx的虚拟主机)
- Apache之——多虚拟主机多站点配置的两种实现方案