ios swift 动态更新 SSL 证书(.cer)文件
Posted
技术标签:
【中文标题】ios swift 动态更新 SSL 证书(.cer)文件【英文标题】:ios swift Dynamically update SSL Certificate(.cer) files 【发布时间】:2022-01-17 19:02:39 【问题描述】:动态需要更新。 我可以从 URL 下载证书并将其保存到文档目录。
func downloadFile(url: URL, completion: @escaping (String?, Error?) -> Void)
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let destinationUrl = documentsUrl.appendingPathComponent(url.lastPathComponent)
if FileManager().fileExists(atPath: destinationUrl)
print("File already exists [\(destinationUrl)]")
completion(destinationUrl, nil)
if let dataFromURL = NSData(contentsOf: url)
if dataFromURL.write(to: URL(string: destinationUrl)!, atomically: true)
print("file saved [\(destinationUrl)]")
completion(destinationUrl, nil)
else
print("error saving file")
let error = NSError(domain:"Error saving file", code:1001, userInfo:nil)
completion(destinationUrl, error)
else
let error = NSError(domain:"Error downloading file", code:1002, userInfo:nil)
completion(destinationUrl, error)
我的问题是下载文件后需要保存到 App Bundle (Bundle.main.resourcePath) 目录中。 还是保存到文档文件夹,移动到App Bundle目录下?
【问题讨论】:
【参考方案1】:您不能将内容移动到Bundle
目录。这是一个只读目录。您必须从 Documents
读取它们并使用代码通过手动读取文件(或使用 Alamofire)来创建证书固定
【讨论】:
我只使用 Alamofire,但是 Alamofire 仅自动获取证书应用程序包 (Bundle.main.af.certificates) Alamofire 是否提供任何属性来更改证书目录。以上是关于ios swift 动态更新 SSL 证书(.cer)文件的主要内容,如果未能解决你的问题,请参考以下文章
使用certbot 生成 Let‘s Encrypt 泛域名ssl证书
更新 ios 推送通知的 SSL 证书时是不是需要重新创建 CK.pem?