【发布时间】:2023-03-11 01:20:02
【问题描述】:
由于我面临无法识别的算法崩溃,因此我按照此处所述进行了修补: http://erlang.org/pipermail/erlang-questions/2015-June/084870.html
崩溃不再出现,但即使在那之后我也没有收到任何 APNS 推送通知。我有沙盒环境。
当我在 ejabberd shell 上运行时:
mod_mymodule:get_socket().
我明白了:
{error,{keyfile,{badmatch,{error,{asn1,{invalid_length,6}}}}}}
我的证书和私有 RSA 密钥文件可以正常工作几个月,直到出现此问题。
get_socket()方法定义为:
get_socket()->
%%Options
Options = [{certfile, ?Cert}, {keyfile, ?Key}, {mode, binary}],
%%ssl connection
ssl:connect(?Address, ?Port, Options, infinity) .
仅供参考,我的宏声明如下:
-define(Cert,"/opt/ejabberd-14.07/bin/MantuPush/cert.pem").
-define(Key,"/opt/ejabberd-14.07/bin/MantuPush/finalkey.pem").
注意:我没有在这里使用 CSR,因为示例没有说明它是强制性的(猜测!)。
可能出了什么问题? APNS 使用的正确证书和私钥内容是什么?
请帮助。 谢谢
【问题讨论】:
-
密钥文件有密码保护吗?如果是这样,您需要提供
{password, "foo"}选项。您可以通过openssl rsa -in finalkey.pem -check查看。 -
@legoscia 否,该文件不受保护。在创建证书和密钥时,系统提示我输入密码,我只需点击返回并继续。
-
你能解决这个问题吗?
标签: ssl erlang apple-push-notifications ssl-certificate ejabberd