Я следовал этому учебному пособию , которое позволяет использовать файл 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 / Всегда ли этот процесс безопасен и безопасен для моего клиента?
Заранее спасибо.