iOS: Можно ли безопасно и надежно создать сертификат .der в Swift с OpenSSL Framework GitHub? - PullRequest
0 голосов
/ 26 марта 2020

Я следовал этому учебному пособию , которое позволяет использовать файл der для защиты приложения подключения с помощью Предотвращение атак «человек посередине» в iOS с помощью закрепления SSL

Я вижу, что это работает хорошо, но моя проблема в том, что я использую letsencrypt , который позволяет только 3 месяца действия сертификата сервера. Я не хотел бы компилировать мое приложение каждые три месяца для моего клиента, это должно быть очень ограничительным и неудобным.
Я пытался поднять сертификат действительности letsencrypt , но, похоже, это невозможно .
Я думал об использовании этого или этого , некоторого G itHub OpenSSL для iOS для генерации этого файла .der каждые два месяц (например).

Я вижу, что код, по-видимому, позволяет вместо того, чтобы взять его в комплекте, я могу взять его прямо на диске:

struct Certificates {
  static let stackExchange =
    Certificates.certificate(filename: "stackexchange.com")

  private static func certificate(filename: String) -> SecCertificate {
    let filePath = Bundle.main.path(forResource: filename, ofType: "der")!
    let data = try! Data(contentsOf: URL(fileURLWithPath: filePath))
    let certificate = SecCertificateCreateWithData(nil, data as CFData)!

    return certificate
  }
}

Так что я мог бы забрать свой .der файл, созданный с помощью GitHub OpenSSL и замените старый на новый.

openssl s_client -connect api.stackexchange.com:443 </dev/null \
  | openssl x509 -outform DER -out stackexchange.com.der

Мои вопросы сейчас:

1 / Это Можно ли создать файл .der в Swift, позволяет ли GitHub это сделать?
2 / Этот процесс осуществим? Есть ли какие-либо ограничения, о которых я не знаю?
3 / Всегда ли этот процесс безопасен и безопасен для моего клиента?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...