Я использую образ докера, известный как коллаборация - базовой ОС для этого контейнера является ubuntu 16.04. Хост докера - ubuntu 18.04. Я пытаюсь отладить, почему соавторы не могут связаться с nextcloud. Еще больше усложняет этот вопрос то, что nextcloud работает за обратным прокси.
С хоста докеров кажется, что я могу связаться с хостом:
# curl https://test.<redacted>.com/index.php/apps/richdocuments/wopi/files/25_ocny42d5quk3?access_token=QAMNMk3aI3e2R7zvmmvq8otOgn4doY6L&access_token_ttl=0&permission=edit
[1] 31340
[2] 31341
root@ubuntu:/etc/nginx/snippets# {"BaseFileName":"About.odt","Size":76671,"Version":"0","UserId":"ncadmin","OwnerId":"ncadmin","UserFriendlyName":"ncadmin","UserExtraInfo":{"avatar":"https:\/\/nextcloud.<redacted>.com\/avatar\/ncadmin\/32"},"UserCanWrite":true,"UserCanNotWriteRelative":false,"PostMessageOrigin":"https:\/\/nextcloud.<redacted>.com\/","LastModifiedTime":"2019-10-06T13:12:44.000000Z","SupportsRename":true,"UserCanRename":true,"EnableInsertRemoteImage":true,"EnableShare":true,"HideUserList":"desktop","DisablePrint":"0","DisableExport":"0","DisableCopy":"0","HideExportOption":"0","HidePrintOption":"0","DownloadAsPostMessage":false}
Если я введу ту же команду из контейнера докеров:
# docker exec -it collabora /bin/bash
root@2bbbb9a893d8:/# curl -vvv https://test.<redacted>.com/index.php/apps/richdocuments/wopi/files/25_ocny42d5quk3?access_token=QAMNMk3aI3e2R7zvmmvq8otOgn4doY6L&access_token_ttl=0&permission=edit
[1] 29692
[2] 29693
root@2bbbb9a893d8:/# * Trying 10.0.1.86...
* Connected to test.<redacted>.com (10.0.1.86) port 443 (#0)
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 592 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: Error in protocol version
* Closing connection 0
curl: (35) gnutls_handshake() failed: Error in protocol version
Поскольку образ докера был основан на версии 16.04, я решил вручную скомпилировать и установить openssl в контейнере до более новой версии:
# docker exec -it collabora /bin/bash
root@2bbbb9a893d8:/# openssl version
OpenSSL 1.1.1f 31 Mar 2020
Это не помогло.
Я не могу понять, почему сайт доступен с хоста докера, но не с образа докера.
Изнутри контейнера:
openssl s_client -connect test.<redacted>.com:443 -CAfile /etc/ssl/certs/ca-certificates.crt
CONNECTED(00000003)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = test.<redacted>.com
verify return:1
---
Certificate chain
0 s:CN = test.<redacted>.com
i:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
1 s:C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
i:O = Digital Signature Trust Co., CN = DST Root CA X3
...
...