gpt4 book ai didi

pubnub - iOS移动推送网关设置-openssl命令实现

转载 作者:行者123 更新时间:2023-12-02 02:10:44 25 4
gpt4 key购买 nike

我想在我的应用程序处于后台时使用移动推送网关发送推送消息。我关注了这个tutorial几乎完成了,但我无法将 .p12 文件转换为 .pem。我可以成功导出 .p12 证书,但无法完成后续步骤,也许我错过了一些东西,但无法弄清楚。

很明显,我需要在终端中运行 openssl 命令,如下所示:

openssl pkcs12 -in <EXPORTED_CERT_NAME.p12> -out <PEM_CERT_NAME.pem> -nodes

这是我的版本:

openssl pkcs12 -in <cert.p12> -out <newCert.pem> -nodes

cert.p12是从钥匙串(keychain)导出的证书,newCert.pem是新文件的名称。我已将其粘贴到终端并按 Enter 键,但没有任何反应。刚刚收到此消息cert2.pem: No such file or directory .

当我尝试使用此命令检查证书时:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert server_certificates_bundle_sandbox.pem -key server_certificates_bundle_sandbox.pem

出现此错误:

Error opening client certificate private key file server_certificates_bundle_sandbox.pem
2668:error:02001002:system library:fopen:No such file or directory:/SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/bio/bss_file.c:356:fopen('server_certificates_bundle_sandbox.pem','r')
2668:error:20074002:BIO routines:FILE_CTRL:system lib:/SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/bio/bss_file.c:358:
unable to load client certificate private key file

我做错了什么?我的 openssl 代码是否有问题,或者我需要在终端中做一些不同的事情?

更新3

a,版本

cd /tmp
openssl pkcs12 -in devKey.p12 -out newDevCert.pem -nodes
openssl pkcs12 -in devKey.p12 -out newDevCert.pem -nodes
Error opening input file devKey.p12
devKey.p12: No such file or directory

b,版本

在这种情况下,我没有机会输入密码,因为错误立即出现在 openssl 命令之后。

cd documents
openssl pkcs12 -in devKey.p12 -out samplePem.pem -nodes
Enter Import Password:
Mac verify error: invalid password?

更新2

我在没有 < > 的情况下尝试了它在名字中

 openssl pkcs12 -in developerTest.p12 -out newDevCert.pem -node 

好像发生了什么事情

openssl pkcs12 -in developerTest.p12 -out newDevCert.pem -node
Usage: pkcs12 [options]
where options are
-export output PKCS12 file
-chain add certificate chain
-inkey file private key if not infile
-certfile f add all certs in f
-CApath arg - PEM format directory of CA's
-CAfile arg - PEM format file of CA's
-name "name" use name as friendly name
-caname "nm" use nm as CA friendly name (can be used more than once).
-in infile input filename
-out outfile output filename
....
-keysig set MS key signature type
-password p set import/export password source
-passin p input file pass phrase source
-passout p output file pass phrase source
-engine e use engine e, possibly a hardware device.
-rand file:file:...
load the file (or the files in the directory) into
the random number generator
-CSP name Microsoft CSP name
-LMK Add local machine keyset attribute to private key

但是当我尝试验证它时仍然出现错误:

Error opening client certificate private key file newDevCert.pem
850:error:02001002:system library:fopen:No such file or directory:/SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/bio/bss_file.c:356:fopen('newDevCert.pem','r')
850:error:20074002:BIO routines:FILE_CTRL:system lib:/SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/bio/bss_file.c:358:
unable to load client certificate private key file

更新(较早)

我导出了一个新的 .p12证书并再次尝试。如果我只是打开终端并运行此代码:

 openssl pkcs12 -in <developerTest.p12> -out <newDevCert.pem> -node

出现此错误

-bash:developerTest.p12:没有这样的文件或目录

我保存了developerTest.p12进入我的Documents文件夹,所以当我尝试时

 cd documents
openssl pkcs12 -in <developerTest.p12> -out <newDevCert.pem> -node

我收到一个不同的错误:

 -bash: newDevCert.pem: No such file or directory

在这种情况下,当我在 Documents 中运行命令时,我认为答案更接近一点。文件夹中它找到了导出的 .p12,但是仍然有问题。

是否确定 PEM_CERT_NAME可以是任何东西吗?

/tmp 版本:

cd /tmp
openssl pkcs12 -in <developerTest.p12> -out <newDevCert.pem> -node

-bash: developerTest.p12: No such file or directory

最佳答案

  1. -node 应该是 -nodes(这意味着“无 des”)

  2. 切勿在文件名中使用大于/小于(< 或 >)。它们在 Unix 中具有特殊含义(重定向)。当在指令中使用时,它们的基本意思是“将 < 和 > 之间的内容替换为您自己的值,并省略 < 和 >”。

例如,这应该可以正常工作:

cd /tmp
openssl pkcs12 -in developerTest.p12 -out newDevCert.pem -nodes

请告诉我上述方法是否有效。

关于pubnub - iOS移动推送网关设置-openssl命令实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24664392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com