TLS/SSL сертификаты
Введение
Для безопасного соединения рекомендуется использовать TLS (также известный как SSL), чтобы предотвратить атаки типа "man in the middle" (человек посередине). В Godot есть обёртка соединения StreamPeerTLS, которая может взять обычное соединение и добавить защиту. Классы HTTPClient и HTTPRequest также поддерживают HTTPS через эту же обёртку.
Godot попытается использовать сертификаты TLS из системного хранилища ОС, но также включает резервный набор сертификатов Mozilla на случай проблем.
Вы можете переназначить свои собственные сертификаты в Project Settings:
Переопределение набора TLS-сертификатов через настройки проекта
При установке этот файл переопределяет системные сертификаты ОС по умолчанию. Файл должен содержать произвольное количество сертификатов в PEM-формате.
Существует два способа получить сертификаты:
Генерация самоподписанного сертификата
В большинстве случаев рекомендуется получать сертификат через центр сертификации, так как этот процесс бесплатен с такими CA как Let's Encrypt. Однако если использование CA невозможно, вы можете создать самоподписанный сертификат и вручную добавить его в доверенные на стороне клиента.
Для создания самоподписанного сертификата сгенерируйте пару приватного и публичного ключей, затем добавьте публичный ключ (в PEM-формате) в CRT-файл, указанный в Project Settings.
Предупреждение
Приватный ключ должен попасть только на ваш сервер. Клиент не должен иметь к нему доступа: в противном случае безопасность сертификата будет скомпрометирована.
Предупреждение
При использовании самоподписанного сертификата в качестве TLS-набора в настройках проекта, стандартная проверка доменного имени осуществляется через CN сертификата и альтернативные имена. Для настройки проверки доменных имён см. TLSOptions.
Для целей разработки Godot может генерировать самоподписанные сертификаты через Crypto.generate_self_signed_certificate.
В качестве альтернативы, OpenSSL предоставляет документацию по генерации ключей и сертификатов.