Nextcloud live doc edit с Collabora Online (CODE) cURL error 60: издатель сертификата партнера был помечен как недоверенный пользователем

Здравствуйте! У меня самое ужасное время с этим. Я хочу закончить, чтобы я мог начать писать вдохновляющие книги для людей и других людей, переживших травмы головного мозга здесь и там, когда у меня будет время. У меня черепно-мозговая травма с кратковременной потерей памяти (например, Дори, обнаружившей Немо) в результате почти смертельной автомобильной аварии в 2007 году, и она очень хорошо выздоровела. Я не хочу использовать диск Google или другие облачные решения, принадлежащие другим компаниям, потому что любая информация, загруженная на что-то вроде диска Google, принадлежит Google, и они могут распространять ее по своему усмотрению. В любом случае, я отвлекся.

Я установил Nextcloud 12 на Apache, и он отлично работает! Я хотел бы сделать живое редактирование документа по причинам выше. Следуйте инструкциям в документации Collabora CODE. Я использую изображение Docker CODE (сотрудник / код). Я запускаю изображение с кодом ниже, как описано в документации. У меня Apache работает без ошибок, по крайней мере, нет очевидных, которые я видел. Я не просматривал логи, просто искал новые при выполнении действий в следующем облаке. У меня установлено приложение Collabore Online, и для сетевого сервера Collabora в разделе "Администратор" установлено https://127.0.0.1:9980. Когда я захожу в Files и пытаюсь открыть новый, ранее созданный вчера пустой документ.odt, он выдает ошибку, показанную в блоке ниже.

Порт 9980 открыт. Селинукс тоже включен, но я бы хотел оставить его включенным. Я перепробовал много вещей за последнюю неделю или две здесь и там, когда у меня было время. Я не помню все, что я сделал, но я знаю, что пытался создать собственный файл Docker для копирования старых сертификатов, используемых с сертификатом "Let's Encrypt" моего сайта. Я не помню, передавал ли я тогда правильную переменную env, чтобы предотвратить создание самоподписанного сертификата и использование сертификата в файловой системе, кто-нибудь знает шаги для этого? Я вернулся к использованию самоподписанного сертификата, потому что во многих доступных руководствах самоподписанный сертификат используется без проблем. Так может это моя особая настройка? С сертификатом манипуляций, которые я попробовал, я проверил против https://127.0.0.1:8890 с curl. Я столкнулся с ошибкой 35 cURL Обнаружен конец файла, и ошибка cURL 60 Сертификат Peer был помечен как ненадежный.

Кто-нибудь знает, как я мог бы успешно использовать свой собственный давайте шифровать сертификат с моего веб-сайта в контейнере для работающей внутри него службы loolwsl? Пожалуйста, дайте мне знать, если я ничего не упомянул! Большое спасибо за чтение и за вашу помощь!

khamil8686

На веб-странице Внутренняя ошибка сервера Сервер обнаружил внутреннюю ошибку и не смог выполнить ваш запрос. Пожалуйста, свяжитесь с администратором сервера, если эта ошибка появляется несколько раз, пожалуйста, включите технические детали ниже в ваш отчет. Более подробную информацию можно найти в журнале сервера. Технические подробности Удаленный адрес: 167.142.215.1 Идентификатор запроса: WVOhwIY0d9yPqqbVbYLBaQAAAAIСообщение журнала Apache (одно и то же повторяется несколько раз)[Чт 29 июня 07:09:25.542925 2017] [authz_core: ошибка] [pid 23408] [клиент 167.142.215.1: AH01630: клиент отклонен из-за конфигурации сервера: /var/www/nextcloud/data/.ocdataВ журнале nextcloud{"reqId":"WVOhwIY0d9yPqqbVbYLBaQAAAAI","level":3,"time":"2017-06-28T12:32:00+00:00","remoteAddr":"167.142.215.1","пользователь":"khamil8686","приложение":"richdocuments","метод":"GET","URL":"\/nextcloud\/index.php\/apps\/richdocuments\/index?fileId=641&requesttoken=xRmG6LQ%2BYOl01txmrtMSQ1OlqGsDB81OeVyWM5JAFTg%3D%3Asl3MrI1OI7w6m_x \"\ \" \"\" \Exception\\\\RequestException\",\"Message\":\"cURL error 60: издатель сертификата однорангового узла был помечен как недоверенный пользователем.\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/guzzlehttp\\\/guzzle\\\/src\\\/RequestFsm.php(103): GuzzleHttp\\\\Exception\\\\RequestException::wrapException(Object(GuzzleHttp\\\\Message\\\\Request), Object(GuzzleHttp\\\\Ring\\\\Exception\\\\RingException))\\n#1 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/guzzlehttp\\\/guzzle\\\/src\\\/RequestFsm.php(132): GuzzleHttp\\\\RequestFsm->__invoke(Object(GuzzleHttp\\\\Transaction))\\n#2 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/ реагировать \\\ / обещание \\\/src\\\/FulfilledPromise.php(25): GuzzleHttp\\\\RequestFsm->GuzzleHttp\\\\{closure}(Array)\\n#3 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/guzzlehttp\\\/ringphp\\\/src\\\/Future\\\/CompletedFutureValue.php(55): реагировать \\\\Promise\\\\FulfilledPromise->then(объект (закрытие), NULL, NULL)\\n#4 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/guzzlehttp\\\/guzzle\\\/src\\\/Message\\\/FutureResponse.php(43): GuzzleHttp\\\\Ring\\\\Future\\\\CompletedFutureValue->then(объект (закрытие)), NULL, NULL)\\n#5 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/guzzlehttp\\\/guzzle\\\/src\\\/RequestFsm.php(134): GuzzleHttp\\\\ Сообщение \\\\FutureResponse::proxy(Object(GuzzleHttp\\\\Ring\\\\Future\\\\CompletedFutureArray), Object(Закрытие))\\n#6 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/guzzlehttp\\\/guzzle\\\/src\\\/src\\\/src\\\/Client.php(165): GuzzleHttp\\\\RequestFsm->__invoke(Object(GuzzleHttp\\\\ Транзакция))\\n#7 \\\/var\\\/www\\\/nextcloud\\\/3rdparty\\\/guzzlehttp\\\/guzzle\\\/src\\\/Client.php(125): GuzzleHttp\\\\Client->send(Object(GuzzleHttp\\\\Message\\\\Request))\\n#8 \\\/var\\\/www\\\/nextcloud\\\/lib\\\/private\\\/Http\\\/Client\\\/Client.php(138): GuzzleHttp\\\\Client->get('https:\\\/\\\/127.0.0...', Array)\\n#9 \\\/var\\\/www\\\/nextcloud\\\/apps\\\/richdocuments\\\/lib\\\/WOPI\\\/DiscoveryManager.php(84): OC\\\\Http\\\\Client\\\\Client->get('https:\\\/\\\/127.0.0...')\\n#10 \\\/var\\\/www\\\/nextcloud\\\/apps\\\/richdocuments\\\/lib\\\/WOPI\\\/Parser.php(41): OCA\\\\Richdocuments\\\\WOPI\\\\DiscoveryManager->get()\\n#11 \\\/var\\\/www\\\/nextcloud\\\/apps\\\/richdocuments\\\/lib\\\/TokenManager.php(117): ОСА \\\\Richdocuments\\\\WOPI\\\\Parser->getUrlSrc('application\\\/vnd...')\\n#12 \\\/var\\\/www\\\/nextcloud\\\/apps\\\/richdocuments\\\/lib\\\/Controller\\\/DocumentController.php(108): OCA\\\\Richdocuments\\\\TokenManager->getToken(*** заменены чувствительные параметры ***)\\n#13 [внутренняя функция]: OCA\\\\Richdocuments\\\\Controller\\\\DocumentController->index('641')\\n#14 \\\/var\\\/www\\\/nextcloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(160): call_user_func_array(Array, Array)\\n#15 \\\/var\\\/www\\\/nextcloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(90): OC\\\\AppFramework\\\\Http\\\\Dispatcher->executeController(Object(OCA\\\\Richdocuments\\\\Controller\\\\DocumentController), 'index')\\n#16 \\\/var\\\/www\\\/nextcloud\\\/lib\\\/private\\\/AppFramework\\\/App.php(114): OC\\\\AppFramework\\\\Http\\\\Dispatcher->dispatch(Object(OCA\\\\Richdocuments\\\\Controller\\\\DocumentController), 'index')\\n#17 \\\/var\\\/www\\\/nextcloud\\\/ Lib \\\ / частный \\\/AppFramework\\\/Routing\\\/RouteActionHandler.php(47): OC\\\\AppFramework\\\\App::main('OCA\\\\\\\\Richdocumen...', 'index', Object(OC\\\\AppFramework\\\\DependencyInjection\\\\DIContainer), Array)\\n#18 [внутренняя функция]: OC\\\\AppFramework\\\\Routing\\\\RouteActionHandler->__invoke(Array)\\n#19 \\\/var\\\/www\\\/nextcloud\\\/lib\\\/private\\\/Route\\\/Router.php(299): call_user_func(Object(OC\\\\AppFramework\\\\Routing\\\\RouteActionHandler), Array)\\n#20 \\\/var\\\/www\\\/nextcloud\\\/lib\\\/base.php(1000): OC\\\\Route\\\\Router->match('\\\/apps\\\/richdocum...')\\n#21 \\\/var\\\/www\\\/nextcloud\\\/index.php(40): OC::handleRequest()\\n#22 {main}\",\"File\":\"\\\/ вар \\\ / WWW \\\ / nextcloud \\\ / 3rdparty \\\ / guzzlehttp \\\ / жрать \\\ / ЦСИ \\\/Exception\\\/RequestException.php\",\"Линия \":51}","userAgent":"Mozilla\/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko\/20100101 Firefox\/54.0","version":"12.0.0.29"}Более читаемый журнал nextcloud из пользовательского интерфейса /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 103: GuzzleHttp\Exception\RequestException wrapException (Объект (GuzzleHttp \ Message \ Request), Объект (GuzzleHttp \ Ring \ Exception \ RingException))
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - строка 132: GuzzleHttp \ RequestFsm -> __ invoke (Object (GuzzleHttp \ Transaction))
    /var/www/nextcloud/3rdparty/react/promise/src/FulfilledPromise.php - строка 25: GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(массив)
    /var/www/nextcloud/3rdparty/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php - строка 55: React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Message/FutureResponse.php - строка 43: GuzzleHttp\Ring\Future\CompletedFutureValue->then(Объект (Закрытие), NULL, NULL) / var / www / nextcloud / 3rdparty / guzzlehttp / guzzlehttp / guzzle / src /RequestFsm.php - строка 134: GuzzleHttp\Message\FutureResponse proxy (Объект (GuzzleHttp \ Ring \ Future \ CompletedFutureArray), Объект (Закрытие))
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php - строка 165: GuzzleHttp \ RequestFsm -> __ invoke (Object (GuzzleHttp \ Transaction))
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php - строка 125: GuzzleHttp \ Client-> send (Object (GuzzleHttp \ Message \ Request)) /var/www/nextcloud/lib/ private / Http / Client / Client.php - строка 138: GuzzleHttp\Client->get('https //127.0.0...', Array)
    /var/www/nextcloud/apps/richdocuments/lib/WOPI/DiscoveryManager.php - строка 84: OC\Http\Client\Client->get('https //127.0.0...')
    /var/www/nextcloud/apps/richdocuments/lib/WOPI/Parser.php - строка 41: OCA\Richdocuments\WOPI\DiscoveryManager->get()
    /var/www/nextcloud/apps/richdocuments/lib/TokenManager.php - строка 117: OCA\Richdocuments\WOPI\Parser->getUrlSrc('application) /vnd...')
    /var/www/nextcloud/apps/richdocuments/lib/Controller/DocumentController.php - строка 108: OCA\Richdocuments\TokenManager->getToken(*** sens предыдущие параметры заменены ***)
    [внутренняя функция] OCA\Richdocuments\Controller\DocumentController->index('641')
    /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - строка 160: call_user_func_array(Array, Array)
    /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - строка 90: OC\AppFramework\Http\Dispatcher->executeController(Object(OCA\Richdocuments\Controller\DocumentController), 'index')
    /var/www/nextcloud/lib/private/AppFramework/App.php - строка 114: OC\AppFramework\Http\Dispatcher->dispatch (Объект (OCA \ Richdocuments \ Controller \ DocumentController),' index ') / var /www/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php - строка 47: OC \ AppFramework \ App main ('OCA \\ Richdocumen...', 'index', объект (OC \ AppFramework \ DependencyInjection \ DIContainer), Array)
    [внутренняя функция] OC \ AppFramework \ Routing \ RouteActionHandler -> __ invoke (Array) /var/www/nextcloud/lib/private/Route/Router.php - строка 299: call_user_func (Object (OC \ AppFramework \ Routing \ RouteActionHandler), Array) /var/www/nextcloud/lib/base.php - строка 1000: OC\Route\Router->match('/apps/richdocum...')
    /var/www/nextcloud/index.php - строка 40: OC handleRequest()
    {main}Чтобы запустить Docker образа Collabora Online CODE, запустите -t -d -p 127.0.0.1:9980:9980 \
       -e 'cert_domain=X\.com' \
       -e 'username=admin' \
       -e ' пароль = пароль ' - всегда запускать --cap-add MKNOD сотрудник / кодApache Config - nextcloud.conf &laboraonlineCODE.conf в файле conf.d==> /etc/httpd/conf.d/nextcloud. Параметры конф. +FollowSymlinks
  AllowOverride Все Dav off
  

  SetEnv HOME /var/www/nextcloud
  SetEnv HTTP_HOME /var/www/nextcloud



==> /etc/httpd/conf.d/collaboraonlineCODE.conf имя_сервера имя-сервера labora.X:443

  # конфигурация SSL, вы возможно, вы захотите выбрать легкий путь и использовать Lets Encrypt!
  SSLEngine на SSLCertificateFile /etc/letsencrypt/live/X-0002/cert.pem
  SSLCertificateChainFile /etc/letsencrypt/live/X.com-0002/chain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/Xvvkey2000 pem
  SSLProtocol             all -SSLv2 -SSLv3
  SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RS-6-A-E-5 GCM-SHA384: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-ША:ECDHE-RSA-DES-CBC3-ША:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA: кодировщик SSL DSSER косые черты должны быть разрешены AllowEncodedSlashes Нет Декодер # Контейнер использует уникальный неподписанный сертификат SSLProxyEngine Вкл. SSLProxyVerify Нет SSLProxyCheckPeerCN Выкл. SSLProxyCheckPeerName Выкл. # Сохранить хост ProxyPreserveHost Вкл.://127.0.0.1:9980/loleaflet retry=0
  ProxyPassReverse    /loleaflet https://127.0.0.1:9980/loleaflet

  # URL-адрес обнаружения WOPI ProxyPass           /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
  ProxyPassReverse    /hosting/discovery https://127.0.0.1:9980/hosting/discovery

  # Главный веб-сокет ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon

  # Консоль администратора веб-сокет ProxyPass   /lool/adminws wss://127.0.0.1:9980/lool/adminws

  # Загрузить как, полноэкранная презентация и операции загрузки изображений ProxyPass           /lool https://127.0.0.1:9980/lool
  ProxyPassReverse    /lool https://127.0.0.1:9980/lool

2 ответа

Решение

Одно предупреждение впереди: вы определенно НЕ должны использовать пароль password для его инструмента администратора. Даже если вы намерены каким-то образом ограничить доступ, слишком легко ошибиться и пригласить злоумышленников.

Сертификат Docker-контейнера, который отображается как ненадежный, является ожидаемым поведением. Этот автоматически сгенерированный сертификат не имеет значения, если вы пересылаете установку CODE через apache.

По причинам, выходящим за рамки простого: "Я не хочу заботиться о сертификатах", рекомендуемая настройка CODE, по своему замыслу, полностью исключает возникновение проблем с сертификатами, предлагая вам настроить CODE в другом домене (с потенциально отдельным сертификатом), чем ваш nextcloud. монтаж.

Разместите ваше следующее облако в одном (под) домене, например, www.example.com, и настройте дополнительную запись в вашей конфигурации apache, например, code.example.com, которая перенаправляет запросы на 127.0.0.1:9980 (игнорируя сертификат, полагая, что ни один злоумышленник не может настроить другую службу для этой комбинации порта и устройства).

Следуйте официальным инструкциям, а затем поставьте https://127.0.0.1:9980 URL-адрес в конфигурации Apache для code.example.com по адресу (что-то вроде) /etc/httpd/conf.d/collaboraonlineCODE.conf и общественное достояние https://code.example.com вашей установки CODE в конфигурацию nextcloud в (что-то вроде) https://example.com/settings/admin, Это гарантирует, что вы можете получить доступ к CODE так же, как nextcloud - на любом компьютере, а не только на том, на котором выполняется установка.

¹⁾ Таким образом, док-контейнер не содержит сертификат, что является довольно разумным выбором, учитывая, что CODE ни в коей мере не повышает безопасность.

Не используйте свой собственный сертификат с nextcloud. Самозаверяющий специальный просто отлично. У меня все еще не работает и работает полностью, но эта ошибка пропущена.

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