使用Objective-C和OpenSSL创建.PEM文件

3

我希望您能协助将以下命令行代码转换为Objective-C或Swift语言。

openssl x509 -req -in 20060.csr -CA root.pem -CAkey root.key -CAcreateserial -out 20060.pem -days 825 -sha256
我已经将openssl编译并构建到我的iOS项目中,并使用一些KeyChain函数成功创建了20060.csr文件。我已经拥有root.pem和root.key文件。 我该如何在Objc中以程序化的方式实现这一点?

请按照以下步骤创建证书和PP:https://dev59.com/questions/v2Ei5IYBdhLWcg3wd8Ku使用此网址将证书转换为.Pem格式:https://www.sslshopper.com/ssl-converter.html - Tajinder singh
1
谢谢@Tajindersingh,但我正在尝试以编程方式实现这个。 - Vinícius Albino
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
0

创建 PEM 文件的代码(CertificateSigningRequest.pem)。

- (void)createPemFileWithCertificateSigningRequest:(X509_REQ *)certSigningRequest {
    //delete existing PEM file if there is one
    [self deletePemFile];

    //create empty PEM file
    NSString *pemFilePath = [self pemFilePath];
    if (![[NSFileManager defaultManager] createFileAtPath:pemFilePath contents:nil attributes:nil]) {
        NSLog(@"Error creating file for PEM");
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error creating file for PEM" message:[NSString stringWithFormat:@"Could not create file at the following location:\n\n%@", pemFilePath] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];
        return;
    }

    //get a FILE struct for the PEM file
    NSFileHandle *outputFileHandle = [NSFileHandle fileHandleForWritingAtPath:pemFilePath];
    FILE *pemFile = fdopen([outputFileHandle fileDescriptor], "w");

    //write the CSR to the PEM file
    PEM_write_X509_REQ(pemFile, certSigningRequest);
    //close the file
    fclose(pemFile);
}

- (NSString *)pemFilePath {
    NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    return [documentsFolder stringByAppendingPathComponent:@"CertificateSigningRequest.pem"];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,