Macを使わずにPush通知用の証明書を揃える方法(Monacaを使用)

Linux

Monacaでいくつかアプリを作って公開していますが、そのいくつかはPush通知にも対応しています。

Push通知を実現するにはPushサーバーが必要となりますが、面倒な手続きがあったり、そもそも情報があまりなかったりするので、Push通知に対応した様々なバックエンドサービスを利用することが多いのではないかと思います。

しかしながら、そういったサービスは、細かく通知を出し分けたりしようとすると、いろいろな制約があったり、それなりのお金もかかってしまいます。

そんなわけで、僕は自前でPushサーバーを運用しています。

「Gaurun」を使えば、Pushサーバーの運用は難しくない

Pushサーバーを自前で、と聞くと思わず尻込みしそうになるかも知れませんが、実のところそんなに難しくはありません。あのメルカリさんが公開してくれている「Gaurun」を使えば、本当に簡単に構築できます。

サービスの規模にもよりますが、conohaあたりの月額630円のVPSサーバーで気軽にスタートしてみてはいかがでしょう?

(追いつかなくなった場合には、サーバーを強化するなりロードバランサー入れて分散させてあげればOKですし。)

一応、広告も貼っておきますね(笑)
↓↓↓↓↓↓↓↓



「Gaurun」をインストールする

GaurunはGO言語で書かれていますので、GOのインストールが必要です。
次のような手順でインストールできます。

#最新版のgoをダウンロードしてください。
wget https://dl.google.com/go/go1.11.1.linux-amd64.tar.gz

#以下に配置
tar -C /usr/local -xzf go1.11.1.linux-amd64.tar.gz

#環境変数を設定します(.bash_profileに下記を追加)
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=$PATH:/usr/local/go/bin:$GOROOT/bin:$GOPATH/bin

mkdir $HOME/go

#インストールの確認のためバージョンを表示させます。
go version
go version go1.11.1 linux/amd64

#gunranをインストールする
go get -u github.com/mercari/gaurun/

#glideをインストールする
go get -u github.com/Masterminds/glide

#ソースディレクトリに移動
cd ~/go/src/github.com/mercari/gaurun

#ここでmake
make bundle
make

ここまでの情報は、ググればたくさん見つかるのですが、Windowsユーザーは次の証明書の取得で詰んでしまいます。

MacなしでPush証明書を揃える方法

Macを使っている人は、普通の方法で取得すればOKです。ここからは、Macを持たないWindowsユーザー向けの情報になります。

Monacaという開発系のウェブサービスを利用すれば、WindowsユーザーでもiOS用のアプリを作ることができます。アプリのコンパイルからApp Store ConnectへのアップロードまでMonacaの管理画面上で行うことができますので、Macを持っていなくてもアプリが作れます。

ところが、Pushサーバーを運用しようとすると、証明書を揃えることが難しくなります。MonacaとApple Developerを使用すれば、Push通知用証明書(CER)の取得までは出来るのですが、その次の手続きに必要なp12の証明書が取得できないのです。この証明書の取得にはMacが必要なのです。MacOS上でキーチェーンアクセスを起動し、先程出来上がったCERを読み込ませて、p12を書き出すのです。

ネット検索しても見つからないのですが、実はMacなしでp12の証明書を取得する方法はあります。

というのも、以前に僕が取得に成功したことがあるからです。

しかしながら、その方法をなかなか思い出せず、再発見まで半日を費やしてしまいましたので、その方法を備忘録としてここに記しておきたいと思います。

Push通知用証明書(CER)の取得まではMacユーザーの方と変わりありませんので、ググったとおりに手続きして証明書を取得してください。

途中で証明書の要求ファイル(CSR)のアップロードを求められますが、Monacaの「iOSビルド設定」画面の「秘密鍵とCSRの生成」ボタンを押して取得したものでOKです。

取得したPush通知用証明書(aps.cer)を、Monacaの「iOSビルド設定」に登録します。登録すると、証明書のリストに追加されるのですが、実はその証明書のリンク(ゴミ箱アイコンの隣のアイコン)からp12証明書(crt.p12)がダウンロードできます(感涙)

aps.cerとcrt.p12をLinuxサーバーにアップロードして、Opensslで変換してやればOKです。
(Opensslが使えれば、windows上でも構いません)

openssl pkcs12 -in crt.p12 -out key.pem -nodes
openssl x509 -in aps.cer -inform DER -out cert.pem -outform PEM

ここで生成した key.pem と cert.pem をPushサーバーに置いて、Gaurunの設定ファイルにそのパスを記述してやればOKです。

コメント

タイトルとURLをコピーしました