SocketRocket固定证书,受信任的证书验证

2020-11-13  本文已影响0人  ing_69c7

和后台要一个受信任的证书 .cer格式,直接拖到项目里

方法1:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"wss://rul]  cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20];

    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"证书名字" ofType:@"cer"];

    NSData*certData = [[NSDataalloc]initWithContentsOfFile:cerPath];

    CFDataRefcertDataRef = (__bridgeCFDataRef)certData;

    SecCertificateRefcertRef =SecCertificateCreateWithData(NULL, certDataRef);

    idcertificate = (__bridgeid)certRef;

    [requestsetSR_SSLPinnedCertificates:@[certificate]];

    _socket = [[SRWebSocket alloc] initWithURLRequest:request];

    _socket.delegate = self;

    [_socket open];

方法2:

在SRWebSocket.m文件里找到

- (void)stream:(NSStream*)aStreamhandleEvent:(NSStreamEvent)eventCode方法

这是socketrocket源码

1.断点那就是在比对是不是受信任的证书,直接把网站上的字符串复制过来,前面的逻辑自己改一下

2.不想改断点之前的代码需要本地随便加一个证书,添加方法参考步骤1。

上一篇 下一篇

猜你喜欢

热点阅读