我試圖讓apn-node推送到我的設備。服務器託管在Heroku上,所以我不想提交該文件。另外,我不想從遠程服務器獲取它,而是將其放入環境變量中。APN節點:加載PEM文件時出錯
我已經嘗試過以下(source):
我從Apple創建並下載了證書,現在將它放在我的鑰匙串中。我將它作爲*.p12
文件導出,並將其與openssl pkcs12 -in dev.p12 -out dev.pem -nodes
轉換爲*.pem
文件。
要設置環境變量,我做了export APN_CERT="$(cat dev.pem)"
。當我在我的應用程序中打印出來時,它證明證書完全正常。 但是,當我實際發送通知(並且node-apn打開連接)時,它會拋出一個[Error: wrong tag]
。
此錯誤由加密模塊發射:
apn Raising error: +4ms [Error: wrong tag] undefined undefined
apn Error occurred with trace: +1ms Error: wrong tag
at Object.exports.createCredentials (crypto.js:176:17)
at Object.exports.connect (tls.js:1344:27)
at apnSocketLegacy
該模塊還拋出一個APN transmission error: moduleInitialisationFailed (Code: 513)
。
除了這可能與節點本身的加密模塊本身有關外,我無法找到任何有用的信息。這就是爲什麼我懷疑在創建證書時我做錯了什麼,但感謝任何指導性建議。
要確保base64沒有換行符,請使用'base64 -w 0'。我結束了'cat cert.p12 | base64 -w 0 | clipit'將其編碼並直接複製到剪貼板。 –