我正在尝试通过使用createKeysAndCertificateFromCsr函数创建密钥和证书,并且结果来自块。

[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionAPNortheast2
                                                                                                    credentialsProvider:nil];
AWSIoTManager *awsIoTManager = [AWSIoTManager defaultIoTManager];

// CSR information dictionary
/*
 commonName
 countryName;
 organizationName;
 organizationalUnitName;
 */
NSString *commonName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];

NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSString *countryName = [usLocale displayNameForKey: NSLocaleCountryCode value:countryCode];

NSString *organizationName = [[NSBundle mainBundle].bundleIdentifier componentsSeparatedByString:@"."][1];
NSString *organizationalUnitName = [[NSBundle mainBundle].bundleIdentifier componentsSeparatedByString:@"."][2];;

NSLog(@"commonName = %@ \
      commonName = %@ \
      organizationName = %@ \
      organizationalUnitName = %@",commonName, countryName, organizationName, organizationalUnitName);

NSDictionary <NSString *, NSString *> * csrDictionary = @{@"commonName":commonName,
                                                          @"countryName":countryName,
                                                          @"organizationName":organizationName,
                                                          @"organizationalUnitName":organizationalUnitName};

// Create CSR
[awsIoTManager createKeysAndCertificateFromCsr:csrDictionary
                                      callback:^(AWSIoTCreateCertificateResponse *mainResponse) {


当我检查块的参数。此错误消息为零。


  错误域= com.amazonaws.AWSIoTErrorDomain代码= 0“缺少身份验证令牌” UserInfo = {NSLocalizedDescription =缺少身份验证令牌,NSLocalizedFailureReason = MissingAuthenticationTokenException}


给我一些建议。谢谢。

最佳答案

为此,您需要提供有效的AWSCredentialsProvider
AWSStaticCredentialsProvider中使用访问密钥和秘密密钥(不建议用于测试以外的其他用途),或者根据您的设置,使用其他可用提供程序之一,例如AWSWebIdentityCredentialsProviderAWSCognitoCredentialsProvider。它们都在AWSIdentityProvider.h文件中声明。

09-25 18:45