ошибка скручивания несмотря на --insecure и без прокси: ssl3_get_record: неправильный номер версии - PullRequest
0 голосов
/ 01 марта 2019

Я использую git-ftp для развертывания некоторых сайтов, и с одним сервером мне не удается установить соединение через TLS.

curl -vv --insecure ftps://linux12.unixserver.org:21
* Rebuilt URL to: ftps://linux12.unixserver.org:21/
*   Trying 212.63.145.118...
* TCP_NODELAY set
* Connected to linux12.unixserver.org (212.63.145.118) port 21 (#0)
* successfully set certificate verify locations:
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* error:1408F10B:SSL routines:ssl3_get_record:wrong version number
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number

Я уже нашел несколько других вопросов, но мойпроблема не совпадает.

  • Я не использую прокси
  • Даже --insecure не удастся, поэтому это не может быть проблемой доверия с сертификатом
  • Я тоже пробовал --cacert, не работает
  • --tls-max 1.2 изменит версию на 1.2, но ничего не изменится

В некоторых источниках говорится, что эта ошибкатакже происходит, когда сервер вообще не доставляет сертификат.

openssl s_client -connect linux12.unixserver.org:21 -starttls ftp

Предоставляет сертификат, так что, кажется, все в порядке.

Я могу успешно подключиться с помощью Nautilus, ноон предупреждает меня о сертификате, что эмитент неизвестен.

Большое спасибо за любой намек на то, что еще можно попробовать.

1 Ответ

0 голосов
/ 04 марта 2019

На самом деле в этом случае были затронуты две проблемы.

1) ftps - это неправильный протокол для серверов, которые поддерживают только явные tls .

Правильный протоколбудет ftpes.Если curl не скомпилирован с поддержкой для него, вы можете использовать --ssl-reqd для принудительного применения TLS или просто --ssl.

В контексте git-ftp это работает, даже если curlскомпилировано без ftpes.

2) Сервер не доставил действительную цепочку сертификатов, поэтому сертификат не может быть проверен.

В настоящее время это сертификат ftpошибка в plesk .

Решение состоит в том, чтобы вручную извлечь цепочку сертификатов и предоставить цепочку с помощью --cacert <file>.Если он самоподписан, извлеките открытый ключ и используйте --pinnedpubkey <file>.

Большое спасибо Даниэлю Стенбергу за правильные подсказки.

...