У меня есть веб-сайт, который использует FTP-сервер IIS 10, и я настроил его на использование явного FTP через TLS, и он отлично работал в течение последнего года. Я купил сертификат сервера через Digicert.
Срок действия сертификата сервера истек 4 января 2019 г. Я продлил сертификат в Digicert, который действителен до 2021 года. Затем я установил его на сервере Windows и обновил FTP-сайт, чтобы использовать новый сертификат.
Однако, когда я пытаюсь подключиться к FileZilla Client, журнал сообщает следующее:
Status: Connecting to xxx.xxx.xxx.xxx:21...
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Но затем появляется предупреждение о том, что срок действия сертификата истек 4 января 2019 года.
Если я нажму «ОК», он продолжится, но затем появится сообщение: «Сертификаты основного подключения и подключения к данным не совпадают». Вот журнал после «Инициализации TLS ...»
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is current directory.
Command: TYPE I
Response: 200 Type set to I.
Command: PASV
Response: 227 Entering Passive Mode (38,101,199,155,19,46).
Command: LIST
Response: 150 Opening BINARY mode data connection.
Error: Primary connection and data connection certificates don't match.
Error: Transfer connection interrupted: ECONNABORTED - Connection aborted
Response: 226 Transfer complete.
Error: Failed to retrieve directory listing
Status: Disconnected from server: ECONNABORTED - Connection aborted
Это похоже на то, как логика инициализации TLS каким-то образом захватывает СТАРЫЙ сертификат, но как только он подключается, он захватывает НОВЫЙ сертификат и видит, что они не совпадают.
Если я обновлю FTP-сервер IIS, чтобы использовать СТАРЫЙ сертификат и повторить попытку подключения, я получаю такое же предупреждение об истекшем сертификате при инициализации TLS, но затем, когда я нажимаю ОК, он подключается, и я могу передавать файлы без проблем (хотя я должен подтвердить, что срок действия сертификата истекает при каждой передаче).
Что тут происходит? Кэширует ли клиент FileZilla сертификат инициализации TLS? Есть ли какие-то другие настройки или действия, которые мне нужно предпринять в конфигурации FTP IIS, чтобы «принять новый сертификат»? (Я попытался перезагрузить веб-сервер после обновления сертификата - по-прежнему нет кубиков, та же проблема.)
РЕДАКТИРОВАТЬ 2019-01-13: Я пошел дальше и удалил просроченный сертификат из хранилища сертификатов Windows, и теперь, когда я пытаюсь подключиться через FTP, он не выполняет команду AUTH TLS:
Status: Connecting to ...
Status: Connection established, waiting for welcome message...
Response: 220 Microsoft FTP Service
Command: AUTH TLS
Response: 431 Failed to setup secure session.
Command: AUTH SSL
Response: 431 Failed to setup secure session.
Error: Could not connect to server
Это говорит мне, что это проблема на стороне сервера. А именно, сервер пытается найти просроченный сертификат, но не может. Я не понимаю, почему FTP IIS все еще пытается использовать старый сертификат.
Если я загляну %WinDir%\System32\Inetsrv\Config\applicationHost.config
, Я вижу эти настройки для раздела FTP-сервера:
<ftpServer>
<security>
<ssl serverCertHash="E10..." serverCertStoreName="My" ssl128="false" controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow" />
<authentication>
<basicAuthentication enabled="true" />
</authentication>
</security>
</ftpServer>
В serverCertHash
сообщается, это отпечаток ток сертификат (не с истекшим сроком действия), поэтому я не понимаю, как / где / почему IIS FTP использует просроченный сертификат для AUTH TLS.
РЕДАКТИРОВАТЬ 2019-02-13:
К сожалению, мне не удалось заставить это работать. В конце концов, я установил FileZilla Server и создал самозаверяющий сертификат для использования FileZilla Server.
Спасибо
Я был в недоумении по этому поводу и наткнулся на исправление (теперь у меня работает).
Теперь это работает для меня с несколькими хостами ftp. Ранее я просто применил сертификат к каждому узлу хоста ...