Я решил опубликовать свою ситуацию после многих дней устранения неполадок. Недавно я установил NextCloud как оснастку на Ubuntu 18.04, и все работало нормально. Я сделал переадресацию портов и использовал Let’s Encrypt (из команд snap) для создания сертификатов для NC.
Затем я решил установить сервер Collabora на эту же машину, чтобы использовать офисный функционал. Я использовал официальные руководства Collaboration для установки, упомянутые здесь. Однако в этом руководстве предполагается, что NC устанавливается вручную (не с помощью оснастки). Согласно руководствам, мне пришлось установить Apache (или любой другой прокси/веб-сервер), чтобы проксировать трафик на NC или Collabora.
Я думаю, что проблема с моей конфигурацией прокси или что-то не так с SSL-сертификатами. Когда запущены и Apache, и snap, я могу перейти на страницу Apache, и Collabora должна быть запущена, но не могу перейти на страницу NC.
Я могу перейти по ссылке ниже (порт 443) и перейти на страницу (имеется в виду, что Collabora отвечает?)
https://collabora.domain.com/loleaflet/dist/admin/admin.html
Но при доступе к домену NC браузер говорит «Не удалось подключиться: потенциальная проблема безопасности» и жалуется, что сертификаты не для того домена NC, который я пытаюсь подключить, а сертификат для домена Collabora. Если я остановлю Apache и позволю запустить Snap, я смогу получить доступ к домену NC без проблем (за исключением того, что мне нужно снова установить порты на 443 и 80! Это проблематично?) Мой файл конфигурации прокси-сервера Apache (находится в /etc/apache2 /сайты-доступны/) выглядит следующим образом:
<VirtualHost *:444>
ServerName nextcloud.domain.com:444
ProxyPreserveHost On
ProxyPass / https://192.168.1.50/
ProxyPassReverse / https://192.168.1.50/
SSLProxyEngine on
SSLCertificateFile /etc/letsencrypt/live/nextcloud.domain.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/nextcloud.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/nextcloud.domain.com/privkey.pem
</VirtualHost>
<VirtualHost *:443>
ServerName collabora.domain.com:443
# SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/collabora.domain.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/collabora.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/collabora.domain.com/privkey.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-$
SSLHonorCipherOrder on
# Encoded slashes need to be allowed
AllowEncodedSlashes NoDecode
# Container uses a unique non-signed certificate
SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off
# keep the host
ProxyPreserveHost On
# static html, js, images, etc. served from loolwsd
# loleaflet is the client part of LibreOffice Online
ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet
# WOPI discovery URL
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery$
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery
# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon
# Admin Console websocket
ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws
# Download as, Fullscreen presentation and Image upload operations
ProxyPass /lool https://127.0.0.1:9980/lool
ProxyPassReverse /lool https://127.0.0.1:9980/lool
# Endpoint with information about availability of various features
ProxyPass /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities retry=0
ProxyPassReverse /hosting/capabilities https://127.0.0.1:9980/hosting/capabilities
</VirtualHost>
Честно говоря, первый раз настраиваю прокси сервер, не знаю как он работает. Большая часть моего файла конфигурации скопирована, и я думаю, что это проблема :) Если кто-то может взглянуть на него и направить меня в правильном направлении, это сэкономит мне много головной боли и времени.