如何在客户端实现SSL?

时间:2017-04-19 07:52:36

标签: ios ssl jwt spring-security-rest

我是网络开发的新手,目前我正在开发一个由IOS应用程序使用的Rest API。所以我开发了API并在其中实现了带有oauth2安全性的jwt令牌。现在我想提供移动应用程序所使用的API。所以我的后端服务器有SSL证书。因此消耗的Rest API将类似于

build.sbt

到目前为止,我已经阅读了有关SSL和JWT的内容,而且我已经将它们用于不同的原因了 SSL用于客户端服务器通信和之间的加密通道 JWT用于授权。

所以即使我实现JWT并且通信不在SSL中也没有意义。为了确保客户端和服务器之间的通信必须在客户端(移动应用程序)端完成?

1.移动应用程序是否需要安装新证书或后端服务器的SSL证书?

2.如果它是我们的后端服务器的SSL证书,那么如何在移动应用程序中安装它?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以在客户端设置您的ssl证书。 您可以符合NSURLSessionDelegate协议并实现:

- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler{
if([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]){
    NSArray* netTrusts = @["your hostname here"];
    if(netTrusts != nil && [netTrusts containsObject:challenge.protectionSpace.host]){
        NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
        completionHandler(NSURLSessionAuthChallengeUseCredential,credential);
    }
}

}