- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在为 iOS 开发 HTTPSClient。我的应用程序中有 DER 格式的 CA 证书,以便执行信任和评估。不幸的是,我无法使用 SecCertificateCreateWithData
加载证书。我的 caRef 保持为零,我没有收到错误消息。
(我从 Windows 服务器导出我的 CA 证书)
certDataRef 总是有一些字节。
我也偶然发现 Created a certificate using SecCertificateCreateWithData on iOS和 iPhone Simulator custom CA certificate . iOS 是否真的需要一些证书属性/扩展?还是我只需要在设备而不是模拟器上运行它?
NSData *derCA = [NSData dataWithContentsOfFile:caDerFilePath];
if (!derCA) {
return nil;
}
CFDataRef certDataRef = (__bridge_retained CFDataRef)derCA;
SecCertificateRef caRef = SecCertificateCreateWithData(kCFAllocatorDefault, (__bridge CFDataRef)(derCA));
if (!caRef) {
return nil;
}
最佳答案
如果您有 DER 格式的证书,您可以执行以下两个步骤,SecCertificateCreateWithData 将起作用。
openssl x509 -in urcert.der -inform DER -out urcert.pem -outform PEM
。---BEGING CERT ----
和 ---- END CERT ---
,您必须将其剥离.您可以使用这样的命令来删除第一行和最后一行:tail -n +2 urcert.pem | head -n -1 > urcert.pem.new && mv urcert.pem.new urcert.pem
现在您可以执行加载证书所需的代码并将其提供给 SecCertificateCreateWithData。
关于iOS如何使用SecCertificateCreateWithData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24056187/
我目前在以下 post 工作.这是代码: SecCertificateRef certs = NULL; SecPolicyRef policy = NULL
我想在 iOS 应用程序中以编程方式创建证书。我能找到的最接近的 API 是 SecCertificateCreateWithData这需要 DER 编码的二进制输入。 鉴于我拥有所有需要的数据作为运
我是一名优秀的程序员,十分优秀!