找不到iOS应用的应用私钥



我需要一个iOS应用程序的私钥(.p12文件),以便通过亚马逊SNS启用推送通知。我在Keychain Access中找不到应用程序的私钥。我只看到我自己和我的公司的开发人员和分发密钥。我本可以删除它,因为我从钥匙链访问中删除了两件与该应用程序相关的东西,以便使用更新的版本。我可能删除了错误的东西。我可以在Xcode中重新生成密钥吗?如果没有,我如何创建一个新的应用程序来获取新密钥?

更新:我找到了这个教程,它详细描述了我要做的事情。http://www.adventuresofanentrepreneur.net/creating-a-mobile-appsgames-company/setting-up-aws-sns-to-send-push-notifications-to-ios-devices步骤4.1-4.5是我无法执行的步骤。这是因为在我的密钥链证书中没有我的应用程序的密钥。我试着创建一个全新的应用程序,并再次按照流程进行操作,但我也没有该应用程序的密钥。

更新2:我发现以下说明让我觉得我的Mac有问题,因为当我安装从开发者中心下载的APN证书时,它没有生成密钥。http://kklolk.blogspot.co.uk/2013/11/amazon-sns-with-apple-apn.html

如果我下载APN证书并将其安装在我的密钥链上,我会在密钥链上看到证书,但不会看到密钥。我的钥匙链上有非APN开发者和分发版的钥匙,但这些钥匙没有通过针对教程中列出的苹果推送服务器的openssl测试

CONNECTED(00000003)
depth=1 C = US, O = "Entrust, Inc.", OU = www.entrust.net/rpa is incorporated by reference, OU = "(c) 2009 Entrust, Inc.", CN = Entrust Certification Authority - L1C
verify error:num=20:unable to get local issuer certificate
verify return:0
140735234900832:error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown:s3_pkt.c:1256:SSL alert number 46
140735234900832:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177:
---

我可以在AWS上的亚马逊SNS新应用程序页面中使用我的非APN.p12文件,但它们给出了错误-您输入的凭据无效。Please enter valid credentials and try again.我还尝试将为应用程序生成的APN证书与来自开发人员和分发服务器密钥的密钥进行组合,这会产生错误-There was a transient failure registering the app with Amazon SNS. Please try again (Request ID: Unknown).

问题看起来肯定是我的计算机没有正确地从APN开发和生产的证书中生成密钥。

我在这里找到了答案:

可以';找不到Apple Development Push Services 的私钥

对我来说,我已经有了证书,但我不知道如何找到它的私钥。如果您单击类别下的"我的证书",则证书旁边会出现一个下拉箭头。点击这个,你应该得到你的私钥。

我自己也遇到过同样的问题。我发现,您需要确保用于在密钥链访问中生成.p12文件的证书是您使用CertificateSigningRequest文件创建的证书。

我回到苹果开发者会员中心,使用我的CertificateSigningRequest文件创建了另一个用于开发目的的证书。当我下载这个并在钥匙链访问中打开它时,私钥现在已经包含在内了。将该私钥对导出为.p12文件使我能够在AWS SNS中成功注册该应用程序。请注意,如果使用开发证书导出私钥,则需要使用APNS沙盒选择在SNS中创建应用程序。如果您使用的是生产证书,则需要使用正常的APNS选项。

我对此有一个初步的答案。在Keychain Access中创建证书时,首先选择iOS开发人员或iOS分发,然后转到菜单Keychain Access>certificate Assistant>Request a certificate from certificate Autority With"iOS D.…"。

以上是在第1步http://docs.aws.amazon.com/sns/latest/dg/mobile-push-apns.html#verify-证书私钥apns

在我直接进入菜单之前,我注意到菜单上写着"向证书颁发机构申请证书"。选择iOS开发者密钥首先会导致它们在导入时成为与证书cer关联的密钥。这让我生成了p12,AWS接受了它。然而,向iOS设备发送消息仍然不起作用,因此它还没有完全成功。

最新更新