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

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

Я установил Nextcloud 12 на Apache, и он отлично работает! Я хотел бы сделать редактирование живого документа по причинам выше. Следуя инструкциям на Collabora CODE Documentation. Я использую образ кода Docker (collabora/code). Я начинаю изображение с кода ниже, как описано в документации. У меня apache работает без ошибок, по крайней мере, без очевидных, которые я видел. Я не прочесывал журналы, просто искал новые при выполнении действия в nextcloud. У меня Collabore установлен онлайн-приложение, и настроить работу онлайн-сервер под админа https://127.0.0.1:9980. Когда я иду в файлы и пытаюсь открыть новый, ранее созданный вчера, пустой .odt документ это дает мне ошибку, показанную в блоке ниже.

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

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

khamil8686

On the webpage

Internal Server Error

The server encountered an internal error and was unable to complete your request.

Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.

More details can be found in the server log.

Technical details

    Remote Address: 167.142.215.1
    Request ID: WVOhwIY0d9yPqqbVbYLBaQAAAAI

Apache log message (same thing repeated several times)
[Thu Jun 29 07:09:25.542925 2017] [authz_core:error] [pid 23408] [client 167.142.215.1:14850] AH01630: client denied by server configuration: /var/www/nextcloud/data/.ocdata

In the nextcloud log
{"reqId":"WVOhwIY0d9yPqqbVbYLBaQAAAAI","level":3,"time":"2017-06-28T12:32:00+00:00","remoteAddr":"167.142.215.1","user":"khamil8686","app":"richdocuments","method":"GET","url":"/nextcloud/index.php/apps/richdocuments/index?fileId=641&requesttoken=xRmG6LQ%2BYOl01txmrtMSQ1OlqGsDB81OeVyWM5JAFTg%3D%3Asl3MrI1OI7w6mY1X5IpnJgLs4C9FX4YFEBXeQ6UvInk%3D","message":"Exception: {"Exception":"GuzzleHttp\Exception\RequestException","Message":"cURL error 60: Peer's certificate issuer has been marked as not trusted by the user.","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\/react\/promise\/src\/FulfilledPromise.php(25): GuzzleHttp\RequestFsm->GuzzleHttp\{closure}(Array)n#3 \/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/ringphp\/src\/Future\/CompletedFutureValue.php(55): React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)n#4 \/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Message\/FutureResponse.php(43): GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)n#5 \/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/RequestFsm.php(134): GuzzleHttp\Message\FutureResponse::proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))n#6 \/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Client.php(165): GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))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): OCA\Richdocuments\WOPI\Parser->getUrlSrc('application\/vnd...')n#12 \/var\/www\/nextcloud\/apps\/richdocuments\/lib\/Controller\/DocumentController.php(108): OCA\Richdocuments\TokenManager->getToken(*** sensitive parameters replaced ***)n#13 [internal function]: 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\/private\/AppFramework\/Routing\/RouteActionHandler.php(47): OC\AppFramework\App::main('OCA\\Richdocumen...', 'index', Object(OC\AppFramework\DependencyInjection\DIContainer), Array)n#18 [internal function]: 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":"\/var\/www\/nextcloud\/3rdparty\/guzzlehttp\/guzzle\/src\/Exception\/RequestException.php","Line":51}","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0","version":"12.0.0.29"}

More readable nextcloud log from UI
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 103: GuzzleHttpExceptionRequestException wrapException(Object(GuzzleHttpMessageRequest), Object(GuzzleHttpRingExceptionRingException))
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 132: GuzzleHttpRequestFsm->__invoke(Object(GuzzleHttpTransaction))
    /var/www/nextcloud/3rdparty/react/promise/src/FulfilledPromise.php - line 25: GuzzleHttpRequestFsm->GuzzleHttp{closure}(Array)
    /var/www/nextcloud/3rdparty/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php - line 55: ReactPromiseFulfilledPromise->then(Object(Closure), NULL, NULL)
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Message/FutureResponse.php - line 43: GuzzleHttpRingFutureCompletedFutureValue->then(Object(Closure), NULL, NULL)
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 134: GuzzleHttpMessageFutureResponse proxy(Object(GuzzleHttpRingFutureCompletedFutureArray), Object(Closure))
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php - line 165: GuzzleHttpRequestFsm->__invoke(Object(GuzzleHttpTransaction))
    /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php - line 125: GuzzleHttpClient->send(Object(GuzzleHttpMessageRequest))
    /var/www/nextcloud/lib/private/Http/Client/Client.php - line 138: GuzzleHttpClient->get('https //127.0.0...', Array)
    /var/www/nextcloud/apps/richdocuments/lib/WOPI/DiscoveryManager.php - line 84: OCHttpClientClient->get('https //127.0.0...')
    /var/www/nextcloud/apps/richdocuments/lib/WOPI/Parser.php - line 41: OCARichdocumentsWOPIDiscoveryManager->get()
    /var/www/nextcloud/apps/richdocuments/lib/TokenManager.php - line 117: OCARichdocumentsWOPIParser->getUrlSrc('application/vnd...')
    /var/www/nextcloud/apps/richdocuments/lib/Controller/DocumentController.php - line 108: OCARichdocumentsTokenManager->getToken(*** sensitive parameters replaced ***)
    [internal function] OCARichdocumentsControllerDocumentController->index('641')
    /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 160: call_user_func_array(Array, Array)
    /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php - line 90: OCAppFrameworkHttpDispatcher->executeController(Object(OCARichdocumentsControllerDocumentController), 'index')
    /var/www/nextcloud/lib/private/AppFramework/App.php - line 114: OCAppFrameworkHttpDispatcher->dispatch(Object(OCARichdocumentsControllerDocumentController), 'index')
    /var/www/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php - line 47: OCAppFrameworkApp main('OCARichdocumen...', 'index', Object(OCAppFrameworkDependencyInjectionDIContainer), Array)
    [internal function] OCAppFrameworkRoutingRouteActionHandler->__invoke(Array)
    /var/www/nextcloud/lib/private/Route/Router.php - line 299: call_user_func(Object(OCAppFrameworkRoutingRouteActionHandler), Array)
    /var/www/nextcloud/lib/base.php - line 1000: OCRouteRouter->match('/apps/richdocum...')
    /var/www/nextcloud/index.php - line 40: OC handleRequest()
    {main}

To run the Collabora Online CODE Docker image
docker run -t -d -p 127.0.0.1:9980:9980 
       -e 'cert_domain=X.com' 
       -e 'username=admin' 
       -e 'password=password' --restart always --cap-add MKNOD collabora/code

Apache Config - nextcloud.conf & collaboraonlineCODE.conf in conf.d

==> /etc/httpd/conf.d/nextcloud.conf 
  Options +FollowSymlinks
  AllowOverride All

  
    Dav off
  

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



==> /etc/httpd/conf.d/collaboraonlineCODE.conf 
  ServerName collabora.X:443

  # SSL configuration, you may want to take the easy route instead and use Lets Encrypt!
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/X-0002/cert.pem
  SSLCertificateChainFile /etc/letsencrypt/live/X.com-0002/chain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/X.com-0002/privkey.pem
  SSLProtocol             all -SSLv2 -SSLv3
  SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-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-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
  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 retry=0
  ProxyPassReverse    /hosting/discovery https://127.0.0.1:9980/hosting/discovery

  # Main websocket
  ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool//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

5
задан Kyle H
источник

2 ответов

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

сертификат контейнера docker отображается как не доверенный ожидаемое поведение. Однако этот автоматически созданный сертификат не имеет значения, если вы также пересылаете установку кода через apache.

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

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

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

1⁾ таким образом, контейнер docker не содержит сертификат, что является довольно разумным выбором, учитывая, что код никоим образом не является достаточно защищенным.

0
отвечен anx 2017-06-29 15:08:59
источник

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

0
отвечен Kyle H 2017-07-02 11:58:07
источник

Другие вопросы apache-http-server certificate linux nextcloud ssl