FileZilla сообщает "Ошибка GnuTLS -48: обнаружено нарушение использования ключа в сертификате"
Я получаю следующую ошибку при подключении к нашему серверу:
Ошибка GnuTLS -48: в сертификате обнаружено нарушение использования ключа. Не удалось подключиться к серверу
Эта проблема появилась после обновления до Filezilla v3.24.0 для Windows на ПК под управлением Windows 10 Pro со всеми обновлениями. Версия для Mac (также v3.24.0) работает нормально, без ошибок. В последнее время на сервере не было никаких изменений.
Информация о соединении: Протокол: FTP - Шифрование протокола передачи файлов: Требуется явный FTP через TLS Тип входа: Запрос пароля
Ftptest.net, протестированный на нашем сервере, не показывает никаких проблем. Обычный FTP (незашифрованный) работает, но это не очень хорошая идея. Я не мог найти решение этой проблемы в Google. Какие-либо предложения?
2 ответа
Пожалуйста, обратитесь к этому сообщению на форуме Filezilla: https://forum.filezilla-project.org/viewtopic.php?t=42790
Это проблема на стороне сервера, и она не появлялась ранее, поскольку более ранние версии FileZilla поставлялись с версией GnuTLS, которая не выполняла эту проверку.
Цитирую сообщение Тима Коссе в ветке форума FileZilla:
В любом случае проблема заключается в цепочке сертификатов X.509 вашего сервера: либо сам сертификат сервера, либо другой сертификат в цепочке имеет ограничение на использование ключа, которое нарушается. Например, сертификат с ограничением использования ключа для подписи не может использоваться для аутентификации соединений TLS. См. Раздел 4.2.1.3 RFC 5280.
Это проблема с созданием сертификата Microsoft IIS (но может также произойти, если вы сгенерировали сертификат другим способом неправильно), так как он не позволяет использовать сертификаты для цифровых подписей. OpenSSL гораздо более раскован по этому поводу и не потерпит неудачу из-за этого, поэтому может работать с другими приложениями.
На стороне клиента вы можете либо отключить TLS, перейти на более раннюю версию FileZilla (ни одна из них не рекомендуется из-за потенциальных угроз безопасности), либо использовать другой клиент, который сейчас использует другую библиотеку, такую как OpenSSL.
Как создать действительный сертификат с IIS
Это должно быть сделано на стороне сервера, очевидно. Если вы не являетесь администратором, отправьте им эти инструкции.
Согласно сообщению на форумах IIS, вы можете генерировать сертификат с помощью PowerShell, пока проблема не будет устранена Microsoft:
New-SelfSignedCertificate -CertStoreLocation cert:\LocalMachine\My -dnsname ftp.example.com
замещать ftp.example.com
по имени хоста вашего сервера.
Вы получите отпечаток пальца, скопируйте это. Установите пароль для закрытого ключа:
$password = ConvertTo-SecureString -String "password goes here" -Force -AsPlainText
Теперь экспортируйте его (вы можете изменить C:\cert.pfx
на путь, на который вы хотите сохранить его, просто убедитесь, что он заканчивается .pfx
):
Export-PfxCertificate -cert cert:\LocalMachine\My\FINGERPRINT -FilePath C:\cert.pfx -Password $password