HTTPS传输签名证书的获取
来源:互联网 发布:知乎 剑侠叁 编辑:程序博客网 时间:2024/05/21 11:17
在基于服务器采用https通讯时候,客户端通过获取服务器的证书,进行一系列验证,那么应该如何获取服务器的证书呢?
#import "ViewController.h"@interface ViewController ()<NSURLSessionDelegate>@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];其中以https://www.baidu.com为例NSURL *testURL = [NSURL URLWithString:@"https://www.baidu.com"]NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[NSOperationQueue mainQueue]];NSURLSessionDataTask *task = [session dataTaskWithRequest:[NSURLRequest requestWithURL:testURL]];[task resume];}#pragma mark - NSURLSessionDelegate - (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * __nullable credential))completionHandler{SecTrustRef serverTrust = challenge.protectionSpace.serverTrust;NSArray *serverCertificates = CertificateTrustChainForServerTrust(serverTrust);获取服务器证书NSString *base64string = [serverCertificates[0] base64EncodedStringWithOptions:0];NSLog(@"证书---%@",base64string); }static NSArray * CertificateTrustChainForServerTrust(SecTrustRef serverTrust) {CFIndex certificateCount = SecTrustGetCertificateCount(serverTrust);NSMutableArray *trustChain = [NSMutableArray arrayWithCapacity:(NSUInteger)certificateCount];for (CFIndex i = 0; i < certificateCount; i++) { SecCertificateRef certificate = SecTrustGetCertificateAtIndex(serverTrust, i); [trustChain addObject:(__bridge_transfer NSData *)SecCertificateCopyData(certificate)];}return [NSArray arrayWithArray:trustChain]; }@end
0 0
- HTTPS传输签名证书的获取
- Volley 信任自签名的 Https 证书
- 获取Android签名证书的sha1值
- 获取Android签名证书的sha1值
- 获取Android签名证书的sha1值
- 获取Android签名证书的MD5值
- 获取Android签名证书的sha1值
- Android签名证书的sha1值获取
- Android签名证书的sha1值获取
- Android_android签名证书的sha1值获取
- 获取签名证书的SHA1值说明
- 获取Android Debug签名证书的信息
- 获取Android签名证书的sha1值
- Android签名证书的获取方式
- 获取android签名证书的SHA1
- 获取android签名证书的sha1值
- openssl 简单的https验证 自签名证书
- Android使用OkHttp访问自签名证书的Https接口
- C++设计模式之——抽象工厂模式(AbstractFactoryPattern)
- 消除navbar和tabbar对坐标的影响
- shell 读取文件内容
- android 相机和相册获取相片剪裁报错问题解决,机型也解决
- 福特蒙迪欧 ECM系统进入算法代码
- HTTPS传输签名证书的获取
- python一键打包
- 三:java中传统线程互斥
- 无需远程注入DLL,几行代码实现War3魔兽地图全开
- STM32 使用 Keil MDK 中的软件逻辑分析仪参与硬件调试
- 关于AppDelegate里面的函数方法
- Java程序员最常用的8个Java日志框架
- hibernate使用@manyToOne注解关联非主键列
- 三个问题