LINUX.ORG.RU

Apache2 «mod_vhost_alias» + let's encrypt (ssl https)

 , , , ,


1

2

Привет лор, подкинули задачку написать мелкий Web hosting, к сожалению все будет работать на апаче, nginx там не подходит.

Так вот для этой цели решил решил использовать модули «mod_vhost_alias» и «libapache-mpm-itk»

Но тут возник вопрос а может ли https в apache2 работать в одном Virtualhost c несколькими сертификатами? Пример:

Apache2 Virtualhost

<VirtualHost *:443>
 
    DocumentRoot /var/www/vhost
    ServerName example.com
    ServerAlias *.example.com

    VirtualDocumentRoot /var/www/vhost/%1
    LogFormat "%V %h %l %u %t \"%r\" %s %b" combined
    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/vhost_error.log
    CustomLog ${APACHE_LOG_DIR}/vhost_access.log combined
    UseCanonicalName Off
    
    <Directory "/var/www/vhost/">
        AllowOverride All
        Options -Indexes
        Require all granted
    </Directory>
    IncludeOptional vhost-enabled/*.conf


</VirtualHost>
cat vhost-enabled/volodya.conf
<Directory "/var/www/vhost/volodya">l
Options +Indexes
Require all granted
AssignUserId volodya volodya
    SSLCertificateFile          /volodya/signed_certificate
    SSLCertificateChainFile     /volodya/intermediate_certificate
    SSLCertificateKeyFile       /volodya/private/key
    SSLCACertificateFile        /voldya/all_ca_certs
</Directory>
cat vhost-enabled/natasha.conf
<Directory "/var/www/vhost/natasha">
Options +Indexes
Require all granted
AssignUserId natasha natasha
    SSLCertificateFile          /natasha/signed_certificate
    SSLCertificateChainFile     /natasha/intermediate_certificate
    SSLCertificateKeyFile       /natasha/private/key
    SSLCACertificateFile        /natasha/all_ca_certs
</Directory>

Ну или указать один путь к сертификатам, и в файле будут все сертификаты, после перебора чтобы подобрал нужный. Судя по документации он только в Virtual Host это может, тогда смысл в mod_vhost_alias отпадает

Context:	server config, virtual host

Поставь haproxy и в нём во frontend пропиши все сертификаты, что тебе нужны и перенаправляй запросы на backend, который вообщем может сидеть на 80 порту на 127.0.0.1.

anonymous ()

Ну если прям нужен этот mod_vhost_alias, то придется сувать все домены в 1 ssl сертификат. Не очень круто.
Вообще не вижу проблемы от него избавиться и разделить вхосты.
Ну или поставить перед апачом на порту 443 какой-нить автоматический подписывальщик letsencrypt, например Openresty / Caddy.

Bers666 ★★★★ ()