Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
指定CSR文件时OpenSSL pkcs12导出失败_Openssl_Apple Push Notifications_Pushsharp - Fatal编程技术网

指定CSR文件时OpenSSL pkcs12导出失败

指定CSR文件时OpenSSL pkcs12导出失败,openssl,apple-push-notifications,pushsharp,Openssl,Apple Push Notifications,Pushsharp,我正在尝试创建一个p12文件,用于PushSharp发送iOS推送通知。一年前,我使用了这个确切的过程来更新我们的证书,它工作得很好;但现在它在最后一步失败了 以下是我正在做的: 在Keychain Access中创建一个名为CertificateSigningRequest.certSigningRequest 从Keychain Access导出私钥,将文件另存为private\u key.p12 转到developer.apple.com,使用步骤1中的CSR文件创建苹果推送服务生产证书,

我正在尝试创建一个p12文件,用于PushSharp发送iOS推送通知。一年前,我使用了这个确切的过程来更新我们的证书,它工作得很好;但现在它在最后一步失败了

以下是我正在做的:

  • 在Keychain Access中创建一个名为
    CertificateSigningRequest.certSigningRequest
  • 从Keychain Access导出私钥,将文件另存为
    private\u key.p12
  • 转到developer.apple.com,使用步骤1中的CSR文件创建苹果推送服务生产证书,将该文件下载为
    aps.cer
  • 在shell中运行以下命令(与在其他堆栈溢出帖子中找到的命令几乎相同):
  • openssl x509-在aps.cer中-通知DER-out应用程序\u cert.pem-从pem中取出
    openssl pkcs12-nocerts-out private_key.pem-in private_key.p12
    openssl rsa-out private_key_noenc.pem-in private_key.pem
    openssl pkcs12-导出-应用内证书.pem-inkey私钥\u noec.pem-证书文件CertificateSigningRequest.certSigningRequest-名称“MyAppName”-输出pushsharp.p12
    
    最终的openssl命令失败,出现以下错误:

    无法加载证书


    我还没有弄清楚我做错了什么;这一切都在一年前运作良好的剧本中。通过删除
    -certfile CertificateSigningRequest.certSigningRequest
    参数,我成功地获得了
    openssl pkcs12-export
    命令,但我相信由此生成的p12文件无法与PushSharp一起使用。

    不要尝试将CSR文件作为
    -certfile
    的参数

    -certfile
    可用于向存储添加其他证书

    例如,app_cert.pem的CA证书链:

        openssl pkcs12 -export -in app_cert.pem -inkey private_key_noenc.pem \
                    -certfile ca_certificates.pem -name "MyAppName" -out pushsharp.p12
    

    如果相应的证书已经存在,通常不需要使用CSR。

    不要尝试将CSR文件作为
    -certfile
    的参数

    -certfile
    可用于向存储添加其他证书

    例如,app_cert.pem的CA证书链:

        openssl pkcs12 -export -in app_cert.pem -inkey private_key_noenc.pem \
                    -certfile ca_certificates.pem -name "MyAppName" -out pushsharp.p12
    

    通常,如果相应的证书已经存在,则无需使用CSR。

    将证书签名请求文件(
    CertificateSigningRequest.certSigningRequest
    )作为
    -certfile
    的值似乎不正确。该错误似乎是适当的,因为它不是一个证书文件。包含该文件的目的是什么?这些openssl命令是脚本的一部分,我们已经使用了几年,作为更新Apple push notification services证书过程的一部分。特别是生成与.NET web服务器上的PushSharp库兼容的.p12文件。如果我没记错的话,需要这样做才能让PushSharp正常工作;我还没有机会用用
    -certfile
    参数生成的p12测试它。对不起,打字错误:我没有机会用没有certfile参数生成的p12文件测试PushSharp。给出证书签名请求文件(
    CertificateSigningRequest.certSigningRequest
    )看起来不正确作为
    -certfile
    的值。该错误似乎是适当的,因为它不是一个证书文件。包含该文件的目的是什么?这些openssl命令是脚本的一部分,我们已经使用了几年,作为更新Apple push notification services证书过程的一部分。特别是生成与.NET web服务器上的PushSharp库兼容的.p12文件。如果我没记错的话,需要这样做才能让PushSharp正常工作;我还没有机会用用
    -certfile
    参数生成的p12文件测试它。对不起,输入错误:我还没有机会用没有certfile参数生成的p12文件测试PushSharp。感谢您确认这应该如何工作。不知道这在过去怎么会对我们有用。删除
    certfile
    参数后,PushSharp的效果很好。感谢您确认这一点。不知道这在过去怎么会对我们有用。删除
    certfile
    参数后,PushSharp的效果很好。