![Как создать действительный сертификат с помощью IIS](https://rvso.com/image/1518666/%D0%9A%D0%B0%D0%BA%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%20%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20IIS.png)
При подключении к нашему серверу возникает следующая ошибка:
Ошибка GnuTLS -48: Обнаружено нарушение использования ключа в сертификате. Не удалось подключиться к серверу
Эта проблема появилась после обновления до Filezilla v3.24.0 для Windows на ПК под управлением Windows 10 Pro со всеми обновлениями. Версия для Mac (также v3.24.0) работает нормально, без ошибок. В последнее время на сервере не было никаких изменений.
Информация о подключении: Протокол: FTP - протокол передачи файлов Шифрование: Требуется явный FTP через TLS Тип входа: Запрос пароля
Ftptest.net протестировал наш сервер, и никаких проблем не обнаружено. Обычный FTP (незашифрованный) работает, но это не очень хорошая идея. Я не смог найти решение этой проблемы в Google. Есть предложения?
решение1
Пожалуйста, ознакомьтесь с этим постом на форуме Filezilla:https://forum.filezilla-project.org/viewtopic.php?t=42790
решение2
Это проблема на стороне сервера, и ранее она не возникала, поскольку более ранние версии FileZilla поставлялись с версией GnuTLS, которая не выполняла эту проверку.
Цитируя пост Тима Коссе вТема форума FileZilla:
В любом случае проблема в цепочке сертификатов X.509 вашего сервера: либо сам сертификат сервера, либо другой сертификат в цепочке имеет ограничение на использование ключа, которое нарушается. Например, сертификат с ограничением на использование ключа для подписи не может использоваться для аутентификации соединений TLS. См. раздел 4.2.1.3 RFC 5280.
Это проблема с генерацией сертификатов Microsoft IIS (но может также произойти, если вы неправильно сгенерировали сертификат другим методом), так как он не позволяет использовать сертификаты для цифровых подписей. OpenSSL гораздо более спокоен в этом отношении и не будет из-за этого давать сбои, поэтому он может работать с другими приложениями.
На стороне клиента вы можете отключить TLS, перейти на более раннюю версию FileZilla (ни один из этих вариантов не рекомендуется из-за потенциальных рисков безопасности) или использовать другой клиент, который на данный момент использует другую библиотеку, например OpenSSL.
Как создать действительный сертификат с помощью 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