apn モジュール (https://github.com/argon/node-apn) を使用して、NodeJS から iPhone にプッシュ通知を送信しています。
私のコードは開発マシン (Mac OSX) で正常に動作し、Apple サンドボックス ゲートウェイ (gateway.sandbox.push.apple.com) を介して通知を正常にプッシュしていますが、それをステージング サーバー (Ubuntu を実行している) に移動するとプッシュします。通知は次のメッセージで失敗します。
Error: ENOENT, no such file or directory 'apns-dev-cert.pem'
NodeJS apn オブジェクトを次のように設定しています。
var options = {
cert: "apns-dev-cert.pem",
key: "apns-key.pem",
passphrase: null,
gateway: "gateway.sandbox.push.apple.com",
port: 2195,
enhanced: true,
errorCallback: undefined,
cacheLength: 5
};
私の開発用 Mac OSX マシンでは、証明書はキーチェーンにインストールされています。Ubuntu についての私の限られた理解からすると、同等の方法は証明書ファイルを /etc/ssl/certs にコピーすることです。これを実行して、NodeJS コードでパスを「/etc/ssl/certs/apn-dev-cert.pem」に変更しようとしましたが、同じエラー メッセージが表示されます。
何か案は?