在Apache上實現多HTTPS虛擬主機

roc_guo發表於2023-04-29

在Apache上實現多HTTPS虛擬主機在Apache上實現多HTTPS虛擬主機

SNI---伺服器名稱指示,是一個TLS的擴充套件,它使得啟用SSL的基於域名的虛擬主機的配置成為可能。打破了每個HTTPS的虛擬主機需要一個IP地址的要求。因此,成本大大降低,因為所有的HTTPS虛擬主機可以共享相同的IP地址和埠,使HTTPS Web服務的更簡單。

在apache環境下,需要使用mod_gnutls來實現同一個IP上配置多個HTTPS主機。下面來看看實現過程:

mod_gnutls的網址參見:

1. 安裝mod_gnutls
# yum install httpd-devel gnutls-devel
# wget 
# tar -xjvf mod_gnutls-0.2.0.tar.bz2
# cd mod_gnutls-0.2.0
# ./configure --prefix=/usr
# make

如果要安裝高版本的gnutls的話,需要先安裝相對應的依賴包libnettle gmplib。下載地址:   

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 
    GnuTLSEnable on
    GnuTLSCertificateFile ./ssl/
    GnuTLSKeyFile ./ssl/
    DocumentRoot "/data/wwwroot/
</VirtualHost>
<VirtualHost 10.1.1.22:443>
    ServerName 
    GnuTLSEnable on
    GnuTLSCertificateFile ./ssl/
    GnuTLSKeyFile ./ssl/
    DocumentRoot "/data/wwwroot/
</VirtualHost>

這樣訪問每個虛擬主機都正常。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2949638/,如需轉載,請註明出處,否則將追究法律責任。

相關文章