Клиент Android с безопасным подключением к серверу GoAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Клиент Android с безопасным подключением к серверу Go

Сообщение Anonymous »

Я разрабатываю приложение для Android (Jetpack Compose с Ktor), которое взаимодействует с сервером, который я создаю на Go (с Gin).Хотя я проверил, что все работает локально между приложением и сервером, я нахожусь на этапе, когда я хочу, чтобы мой сервер отвечал только на запросы моего приложения (когда оно будет запущено). Эти запросы также должны быть максимально безопасными, поэтому я узнал, что мне нужно использовать SSL с сертификатом клиента.
Это то, в чем мне не хватает знаний, поэтому, пожалуйста, простите мое невежество.
Я прочитал много вопросов SO (некоторые из них устарели или не относятся к текущим библиотекам) и другие ресурсы в Интернете, и поскольку это личный проект, я понял, что смогу:
  • Создайте самозаверяющий сертификат (с использованием OpenSSL).
  • Используйте его внутри приложения.
  • Настройте клиент Ktor на использование SSL
  • Настройте клиент Ktor на использование SSL
  • li>
Я все еще не уверен, что нужно сделать на стороне сервера, но мы вернемся к этому позже в этом вопросе.
После создания сертификата я поместил его в папку ресурсов res/raw. (сертификат имеет расширение файла .der), и я не знаком с конфигурацией, которую мне нужно создать для клиента Ktor.
В настоящее время у меня есть это для клиента Ktor:

Код: Выделить всё

HttpClient(Android) {
install(ContentNegotiation) {
json(
Json {
ignoreUnknownKeys = true
}
)
}
}
и я читал о различных движках в клиенте Ktor, но, похоже, мне нужно использовать Android. В одной части официальной документации говорится, что для настройки SSL в Ktor необходимо использовать XML-файл конфигурации сетевой безопасности, но чуть ниже в официальной документации говорится о свойстве sslManager, что меня смущает.
  • Что мне нужно сделать, чтобы настроить клиент Ktor на использование сертификата в запросах?
  • Что мне нужно сделать сделать на стороне сервера, чтобы принимать только те запросы, которые допустимо?
Я знаю, что это вопрос, состоящий из двух частей, и он включает в себя два разных языка, но на самом деле вы не можете просто выполнить клиентскую часть без на стороне сервера.
Ссылки:
  • Заставить сервер принимать соединения только из приложения Android< /li>
    Как добавить SSL-сертификат в проект Android?


Подробнее здесь: https://stackoverflow.com/questions/793 ... connection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»