apache中使用mod_gnutls模块实现多个SSL站点配置(多个HTTPS协议的虚拟主机)

时间:2021-05-19

在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:///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 :443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/.public.cer
GnuTLSKeyFile ./ssl/.private.key
DocumentRoot "/data/wwwroot//webroot"
</VirtualHost>

<VirtualHost 10.1.1.22:443>
ServerName :443
GnuTLSEnable on
GnuTLSCertificateFile ./ssl/.public.cer
GnuTLSKeyFile ./ssl/.private.key
DocumentRoot "/data/wwwroot//webroot"
</VirtualHost>

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

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章