Bug 32885 - Ошибка SSL при работа с Collabora Online
Summary: Ошибка SSL при работа с Collabora Online
Status: CLOSED NOTABUG
Alias: None
Product: Branch p8
Classification: Distributions
Component: php5 (show other bugs)
Version: не указана
Hardware: all Linux
: P3 normal
Assignee: Andrey Cherepanov
QA Contact: qa-p8@altlinux.org
URL: https://nextcloud.com/collaboraonline/
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-12 09:06 MSK by Andrew Chemyakyn
Modified: 2016-12-12 16:29 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Chemyakyn 2016-12-12 09:06:05 MSK
В PHP 5.6 появился контроль сертификатов. Проблема в том, что collabora online, похоже, писан для 5.5 и этого не учитывает. Соответственно, LibreOffice Online под Docker поднимается и даже на запросы честно отвечает, но коннектор облака к нему даже не пытается цепляться, потому что ругается на свой собственный сертификат.
Сертификаты у нс все честные, выданы comodo, правда на *.72to.ru

Что делать, куда копать?

Ссылка на NextCloud: https://nextcloud.com/collaboraonline/
Ссылка на коннектор: https://apps.owncloud.com/content/show.php/Collabora+Online+connector?content=174727
Comment 1 Andrey Cherepanov 2016-12-12 10:50:47 MSK
А какое альтовый php5 имеет отношение к стороннему программному обеспечению?
Comment 2 Anton Farygin 2016-12-12 10:58:29 MSK
Андрей, а что говорит поддержка Collabora по этому поводу ?

Есть простой механизм воспроизвести вашу конфигурацию ?
Comment 3 Andrew Chemyakyn 2016-12-12 11:11:40 MSK
(В ответ на комментарий №1)
> А какое альтовый php5 имеет отношение к стороннему программному обеспечению?

Так у кого мне ещё спрашивать-то? Это ошибка совместимости PHP, это точно.
Скорее всего не баг, а фича. Вопрос, как её обойти? Может надо сертификат куда прикрутить?
Скорее всего, nextcloud они это дело поправят. Я надеюсь. Конечно, я им напишу на своём ломанном английском. Надеюсь, поймут.

(В ответ на комментарий №2)
> Андрей, а что говорит поддержка Collabora по этому поводу ?
> Есть простой механизм воспроизвести вашу конфигурацию ?

Пока не писал. Я только в выходные понял, в чём именно проблема.
Проще всего поставить nextcloud или owncloud и прикрутить к нему коннектор collabora. Я уже раза четыре поднимал, если не больше. Взлетает где-то за час, без особых проблем. Дольше всего занимает скачивание образа докера для LOOL. Проще всего взлетает скачанный с официального сайта. Необходимое требование, это честный сертификат для сайта, иначе LibreOffice будет ругаться. В принципе, у меня эта ошибка всплывает даже когда докер заглушен. Т.е., это сам PHP её выдаёт.
Comment 4 Anton Farygin 2016-12-12 11:17:50 MSK
Андрей, сделайте пошаговую инструкцию по разворачиванию (что бы мы могли не тратить время на погружение в контекст), посмотрим.
Comment 5 Andrew Chemyakyn 2016-12-12 11:41:45 MSK
(В ответ на комментарий №4)
> Андрей, сделайте пошаговую инструкцию по разворачиванию (что бы мы могли не
> тратить время на погружение в контекст), посмотрим.

Проще всего так:
1. Ставим сервер p8 в любой конфигурации, как удобнее.
2. Ставим следующие модули:
apache2-mod_php5
apache2-mod_ssl
php5-curl
php5-xmlreader
php5-fileinfo
php5-sqlite3
docker-io
3. Сносим содержимое /var/www/html/ и заливаем туда web-установщик: https://download.nextcloud.com/server/installer/setup-nextcloud.php
4. Запускаем его, обратившись по адресу, http://myservername/setup-nextcloud.php
5. Если чего-то не хватает, скрипт об этом сообщит.
6. Возможно, после установки апач будет ругаться. Это из-за .htaccess - можно его просто переименовать.

После установки нужно сконфигурировать https и дать доступ к серверу через https. Если сервер будет ругаться на memcache, и это будет напрягать, установить модуль APCu: apt-get install php5-apcu
Настроить memcache: https://docs.nextcloud.com/server/10/admin_manual/configuration_server/caching_configuration.html

Пошаговая инструкция по установке LibreOffice Online находится тут: https://nextcloud.com/collaboraonline/
Коннектор у меня нашёлся в экспериментальных приложениях. Если что, его можно скачать с https://apps.owncloud.com/content/show.php/Collabora+Online+connector?content=174727 и положить в каталог apps.
Там надо настроить reverse proxy. В конфигурации коннектора collabora в панели администрирования nextcloud указываем адрес своего сервера. Т.е., nextcloud, установленный на https://cloud.72to.ru, должен обращаться, например, к https://cloud.72to.ru/loleaflet/1.9.8/loleaflet.html, а дальше апач его уже проксирует на localhost.
Но, до этого не дойдёт - ошибка появляется раньше.
Как-то так.
Comment 6 Andrew Chemyakyn 2016-12-12 11:45:08 MSK
На сколько я понял, разницы в настройке с OwnCloud нет. У меня дома стоит OwnCloud, но у меня дома нет честного сертификата, поэтому запустить lool затруднительно.
Comment 7 Anton Farygin 2016-12-12 11:45:59 MSK
А удалённый доступ сможете организовать ?
Comment 8 Andrew Chemyakyn 2016-12-12 12:00:18 MSK
(В ответ на комментарий №7)
> А удалённый доступ сможете организовать ?

Открыт доступ по ssh. Детали по email.
sshd там вручную запускается, потому что сервер в DMZ
Comment 9 Anton Farygin 2016-12-12 12:02:56 MSK
Так а как ругань выглядит ?
Comment 10 Anton Farygin 2016-12-12 15:12:36 MSK
Это не проблема PHP, а некорректно настроенный WEB-сервер.

$ curl https://cloud.72to.ru/
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
Comment 11 Andrew Chemyakyn 2016-12-12 16:29:57 MSK
Короче, это действительно проблема не в PHP.
Нужно было правильно собрать бандл для моего ключа по инструкции комодо.
1. Посмотреть в браузере сертификат сайта и посмотреть цепочку.
2. Скачать все необходимые сертификаты: https://support.comodo.com/index.php?/Default/Knowledgebase/List/Index/71/root--intermediates
3. Положить цепочку в бандл по инструкции: https://support.comodo.com/index.php?/Default/Knowledgebase/Article/View/1145/0/how-do-i-make-my-own-bundle-file-from-crt-files
4. В конфигурации https указать полученный бандл в качестве key chain.