Maison > Questions et réponses > le corps du texte
J'ai les questions suivantes sur l'utilisation de certificats auto-signés pour https :
1. Selon les informations lues en ligne, les certificats auto-signés nécessitent que le client importe le certificat puis vérifie le certificat. Si le certificat n'est pas vérifié, quels sont les risques et les problèmes liés à l'utilisation directe des informations d'identification envoyées pour la communication. ?
- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
//1)获取trust object
SecTrustRef trust = challenge.protectionSpace.serverTrust;
NSURLCredential *cred = [NSURLCredential credentialForTrust:trust];
[challenge.sender useCredential:cred forAuthenticationChallenge:challenge];
}
Je vois souvent un morceau de code comme celui-ci sur Internet. Comment pensez-vous que ce code est vérifié ?
NSURLSessionAuthChallengeDisposition disposition = NSURLSessionAuthChallengePerformDefaultHandling;
__block NSURLCredential *credential = nil;
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
disposition = NSURLSessionAuthChallengeUseCredential;
credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
} else {
disposition = NSURLSessionAuthChallengePerformDefaultHandling;
}
if (completionHandler) {
completionHandler(disposition, credential);
}
曾经蜡笔没有小新2017-05-02 09:40:04
1. Les requêtes directes sans vérifier le certificat sont problématiques.
2. L'autre côté détermine d'abord si le serveur de certificat est digne de confiance, puis gère le certificat en conséquence. Voir HTTPs iOS pour plus de détails.