Я хотел бы, чтобы мой экземпляр 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.
Все хорошо работает теперь с описанными настройками. Поведение могло бы быть из-за firefox
ерунда загрузки кэша.