在Apache上实现多HTTPS虚拟主机

Crq
Crq
管理员
1728
文章
0
粉丝
Linux教程评论69字数 412阅读1分22秒阅读模式
摘要在apache的环境下该如何配置多HTTPS虚拟主机呢?利用的原理的都是同一个,也就是SNI。基于域名的虚拟主机,即共享同一个IP地址和端口的HTTPS虚拟主机。

在Apache上实现多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/

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.ttlsa.com:443
    GnuTLSEnable on
    GnuTLSCertificateFile ./ssl/www.ttlsa.com.public.cer
    GnuTLSKeyFile ./ssl/www.ttlsa.com.private.key
    DocumentRoot "/data/wwwroot/www.ttlsa.com/webroot"
</VirtualHost>
<VirtualHost 10.1.1.22:443>
    ServerName www.heytool.com:443
    GnuTLSEnable on
    GnuTLSCertificateFile ./ssl/www.heytool.com.public.cer
    GnuTLSKeyFile ./ssl/www.heytool.com.private.key
    DocumentRoot "/data/wwwroot/www.heytool.com/webroot"
</VirtualHost>

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

参考文档:http://www.g-loaded.eu/2007/08/10/ssl-enabled-name-based-apache-virtual-hosts-with-mod_gnutls/

weinxin
我的微信
微信号已复制
我的微信
这是我的微信扫一扫
 
Crq
  • 本文由 Crq 发表于2025年1月9日 09:04:02
  • 转载请注明:https://www.cncrq.com/12524.html
让KVM虚拟机支持console功能 Linux教程

让KVM虚拟机支持console功能

在工作中,我们可能都会接触到 KVM 虚拟机,并且公司的很多应用也都会跑在 KVM 虚拟机上。因此,对 KVM的熟练应用,也是运维必不可少的能力之一。那么在 KVM 的实践过程中,...
在 RHEL 7.1 上设置 Mesos/Marathon 集群 Linux教程

在 RHEL 7.1 上设置 Mesos/Marathon 集群

Mesos 是一套分布式集群管理器,旨在通过以动态方式于不同任务之间共享资源的方式改进资源使用率;Marathon 是一套用于在 Mesos 之上运行长期运行应用程序或者服务的框架...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证