iOS 앱에서 프로그래밍 방식으로 인증서를 만들고 싶습니다. 내가 찾을 수있는 가장 가까운 API는 DER로 인코딩 된 바이너리 입력이 필요한 SecCertificateCreateWithData입니다.iOS에서 SecCertificateCreateWithData를 사용하여 인증서를 만들었습니다.
런타임 개체로 필요한 모든 데이터가 제공된다면 어떻게 DER로 인코딩 된 이진 데이터 입력을 구성 할 수 있습니까?
iOS 앱에서 프로그래밍 방식으로 인증서를 만들고 싶습니다. 내가 찾을 수있는 가장 가까운 API는 DER로 인코딩 된 바이너리 입력이 필요한 SecCertificateCreateWithData입니다.iOS에서 SecCertificateCreateWithData를 사용하여 인증서를 만들었습니다.
런타임 개체로 필요한 모든 데이터가 제공된다면 어떻게 DER로 인코딩 된 이진 데이터 입력을 구성 할 수 있습니까?
이이 doen 할 수있는 방법입니다 :
NSString* certPath = [[NSBundle mainBundle] pathForResource:@"myCertificate" ofType:@"cer"];
NSData* certData = [NSData dataWithContentsOfFile:certPath];
SecCertificateRef cert;
if([certData length]) {
cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certData);
if(cert != NULL) {
CFStringRef certSummary = SecCertificateCopySubjectSummary(cert);
NSString* summaryString = [[NSString alloc] initWithString:(__bridge NSString*)certSummary];
NSLog(@"CERT SUMMARY: %@", summaryString);
CFRelease(certSummary);
} else {
NSLog(@" *** ERROR *** trying to create the SSL certificate from data located at %@, but failed", certPath);
}
}
// play with cert here
myCertificate.cer 응용 프로그램 번들에 있어야합니다. 나는 openssl로 cer 파일을 만든다. iOS 응용 프로그램에서이 프로그램을 사용하려는 경우 인증서에 필수 확장자가 포함되어 있는지 확인하고 here을 확인하십시오. 대답은 -1이지만,이 실행을 도왔습니다.
SecKeyGeneratePair보세요.이게 당신이 찾고있는 것 같아요.
이것은 질문에 대한 답변이 아니므로 의견을 제시해야합니다. –
안녕하세요, @lawick, 당신이 제안하는 솔루션은 기존 인증서 "myCertificate.cer"을 복사하는 것입니다. 내 질문에 대한 기존의 복사보다는 프로그래밍 방식으로 인증서를 만드는 것입니다. 필요한 세부 정보 (예 : 키, 사용자 세부 정보 등)가 있습니다. – Jamil
죄송합니다. 질문에 대한 오해를했습니다. DER 데이터는 이미 인증서이므로 ** SecCertificateCreateWithData ** 메서드는이를 지원하지 않습니다. 왜 iOS로 인증서 자체를 만들고 싶습니까? – lawicko
각 사용자마다 인증서가 필요합니다. 앱에서 OpenSSL을 사용하는 것이 더 쉬울 것이라고 생각하십니까? – Jamil