Как заставить apache2 обслуживать HTTPS на порту 443 и не по умолчанию? [закрыто]

Я хотел бы, чтобы мой экземпляр apache2 обслуживал HTTPS (простую страницу или действительно все что угодно) на стандартном порту 443 просто был доступен, например, для letsencrypt клиента установки сертификата и для обслуживания нескольких сервисов (вики, трекеров проблем и т.д.) на других портах (например, dokuwiki на порту 446).

Обслуживание этих нестандартных портов отлично работало для нескольких сервисов до включения HTTPS на порту 443 (см. ниже) с такими конфигурациями сайта, как

Listen 0.0.0.0:446 https

Alias /dokuwiki/ "/var/www/html/dokuwiki/"

DirectoryIndex index.php index.html index.htm

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .htm .html

<Directory "/var/www/html/dokuwiki">
    Options None
    AllowOverride Limit

    Require all granted
</Directory>

<VirtualHost [hostname]:446 >
    ErrorLog /var/log/dokuwiki/dokuwiki.log
    SSLEngine On
    DocumentRoot "/var/www/html/dokuwiki"
    ServerName [hostname]
    SSLCertificateFile /etc/letsencrypt/live/[hostname]/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/[hostname]/privkey.pem
</VirtualHost>

После включения Listen 443 в /etc/apache2/ports.conf, включения SSLEngine on в /etc/apache2/sites-enabled/default-ssl. conf и указав SSL сертификат и ключ в SSLCertificateFile и SSLCertificateKeyFile, dokuwiki обслуживается с HTTPS на порту 443, а 446 больше не обслуживает HTTPS, но apache2 использует порт согласно netstat -tupln.

/etc/apache2/sites-available/default-ssl.conf есть

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin admin@[hostname]

                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on

                SSLCertificateFile /etc/letsencrypt/live/[hostname]/fullchain.pem
                SSLCertificateKeyFile /etc/letsencrypt/live/[hostname]/privkey.pem

                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

        </VirtualHost>
</IfModule>

Я предполагаю, что dokuwiki обслуживается на порту 443, потому что это соответствует структуре каталогов. Мне нужно выяснить, как это отключить, но это отдельная проблема. Я не понимаю, почему 446 больше не обслуживается (firefox 47. 0 выдает SSL_ERROR_RX_RECORD_TOO_LONG и говорит, что сайт просто не обслуживает HTTPS, а в журнале сайта dokuwiki есть [Thu Jul 21 14:42:48.803900 2016] [ssl:info] [pid 13028] AH01914: Configuring server richtercloud.de:443 for SSL protocol, что не имеет никакого смысла). Является ли это ошибкой?

Я нашел https://serverfault.com/questions/528210/bind-apache-ssl-port-with-different-port-with-same-openssl-port-443, но решение там - моя проблема.

Я использую Ubuntu 16.04.

2
задан 13 April 2017 в 15:14

1 ответ

Все хорошо работает теперь с описанными настройками. Поведение могло бы быть из-за firefox ерунда загрузки кэша.

0
ответ дан 2 December 2019 в 10:23

Другие вопросы по тегам:

Похожие вопросы: