2019年 6月 8日アーカイブ

ipaファイルを作成して、iPhone実機にインストール

iPhone実機向けにビルドをする方法はいくつかありますが、今回は Procisioning Profile を作ってビルドする手続きを取りました。

すでにわかりやすくまとめてくださってるサイトがありましたので、
ほぼリンクのまとめのみです。

というかここでは、自分の環境依存の説明しかしていないので、
リンク先だけ見ていただいた方がきっと良いです!!

1.証明書の作成

以下サイトで非常にわかりやすくまとめてくださっています。

2.Provisiong Profileの作成

こちらも上記同様です。

3.Xcodeでipaファイルを作成

・Xcodeでipaを作りたいプロジェクトを開く

・Product メニューの Archive から ビルド

・Archiveでのビルドが完了すると、Archivesが開くので Distribute App をクリック

この後、Distributeに関する設定をいくつか質問されるのでそれぞれ設定していきます

・今回はAdHocで出力したいので、AdHocを選択

・ビルド時間を短くするため、BitCode等のオプションをオフに

・証明書とprovisioning profile を選択

・出力に関するまとめが表示されるので、そのままExportを押す

この後、出力先を指定すると、ipaファイルが出力されます。

4.ipaファイルをWebでダウンロードさせる

webでダウンロードさせる場合、ipaファイルを直接開いてもインストール出来ないので、マニフェストの設定を行う必要があります。

こちらは、以下リンク先にまとめてくださってます。

■ ipaファイルをWebからインストールする時のdownload-manifest用plistの作り方
https://qiita.com/seyself/items/e81882d01d6741ada12d

SSLサーバー証明書の導入 – Macで自宅サーバー立ち上げ (5)

個人サイトなので、別にhttp通信でも良いと思ってたんですが、safariやchromeなどでhttpサイトにアクセスすると「通信が暗号化されてません」とか「安全なサイトではありません」みたいな表記が毎回なされるんですよね。

おそらく、その時点でこのサイトにアクセスしたくなくなると思うのでしょうがなくhttpsで通信できるように証明書の取得を進めました。

おそらく面倒だろうなぁと思っていましたが、案の定かなり面倒・・・

先週行ったのに、もうすでに手続きを忘れつつあるので、念の為このあたりのこともざっくりですがまとめとこうと思います。

1.証明書発行業者の選定

SSLサーバー証明書は自分でも発行はできますが、その場合だとsafariやchromeさんに警告されてしまい、結局httpと同じ不安が出るのでとりあえずきちんとした業者さんに発行してもらうことにしました。

自分が知っていた所だとベリサインとかですが、ちょっと高いイメージがあったので、安そうなところを探しました。

ちなみに、ベリサインはシマンテックに社名変更したみたいですね。。

■ 日本ベリサイン株式会社の社名変更および組織変更
https://knowledge.digicert.com/ja/jp/alerts/ALERT692.html

いろいろと調べた結果、FujiSSLと言うところが比較的安くて、割と有名でもあるみたいだったので、今回はこちらで証明書を発行してもらうことにしました。

ちなみに、証明書の費用は発行時、1年で1,080円でした。

■ FujiSSL-安心・安全の純国産格安SSLサーバ証明書
https://www.fujissl.jp/

2.申請に必要なファイルを作成

申請手続きを進めるに当たり、サーバーの署名を記入する必要が出てきます。

また、サーバの署名を作成するために予め鍵ペアを作成しておく必要もあります。

FujiSSLの場合は、公式に詳しい説明があったので、こちらを確認して進めました。
https://www.fujissl.jp/docs/d001/

この場面で作成するファイルは以下の2つです。

  • 任意の名前.key
  • 任意の名前.csr

仮にここでは

  • servername.key
  • server.csr

としておきます。

またそれぞれのファイルについては以下サイトが詳しかったです。

■ 鍵ペア
https://wa3.i-3-i.info/word17033.html

■ 署名のリクエストファイル
https://knowledge.digicert.com/ja/jp/solution/SO22872.html

3.申請手続き

申請についても公式の説明が詳しいので、こちらを参考に進めます。

先程作成したcsrファイルの中身をコピペで貼り付けたりする必要があります。

■ 申請
https://www.fujissl.jp/request/petition/

4.サーバーの審査

手続きを進めると、FujiSSLより有効なサーバーかを審査するために、htmlファイルが送信されます。

FujiSSLのボットによる定期的なサイト審査作業が開始されるようなので、このファイルをサーバーの指定位置に配置ししばらく待ちましょう。

この辺の手続きについても公式サイトを参考にしましょう。

■ 審査
https://www.fujissl.jp/request/review/

ちなみに、メールで認証する方法もあるみたいですがこちらは試していないので、やり方はわかりません。

5.証明書の配置

審査が完了するとようやくメールでサーバー証明書とCA証明書が送付されます。

添付ファイルもついているのですが、使い方がよくわからず、自分はメールに書かれている証明書の内容をコピペしてファイルを作成しました。

サーバー証明書とCA証明書についてメールの中にコードが貼り付けれられているので、(—–BEGIN CERTIFICATE—–)から(—–END CERTIFICATE—–)の部分をそれぞれコピペしてファイル化します。

また、CA証明書はなぜか2つの証明書文字列が書かれていたんですが、1つ目の方だけ利用してファイルを作成したら結果的にうまくいきました。

今後の説明のため、作成したファイルは仮に以下の通りとしておきます。

サーバー証明書
server.csr

CA証明書
server-ca.csr

6.keyファイルのパスフレーズ解除

この部分はMAMPの場合のみ必要な作業となります。

MAMPだとkeyファイルにパスフレーズが含まれていると、apacheの起動に失敗してしまうようです。

いくつか方法はありそうですが、今回はkeyファイルのパスフレーズを解除したファイルを作成する事にしました。

具体的なコマンドは以下の通り。

# openssl rsa -in xxxxxxx.key -out xxxxxxx.key

ここでは、手順で作成した servername.key を non-phrase-servername.key としてフレーズなしキーファイルを作成したこととします。

ちなみに、この手続はGlobalSignの説明を参考に参考にしました。

■ Apacheでの、パスフレーズ入力なしでの起動方法 | サポート・お申し込みガイド | GMOグローバルサイン【公式】
https://jp.globalsign.com/support/faq/93.html

7.証明書類の配置

ここまででSSL通信を行うために必要なファイルが揃いました。

おさらいすると手順5で作成した以下ファイルとなります。

ファイル名概要
server.csrサーバー証明書
server-ca.csrCA証明書
non-phrase-servername.key 鍵ペア (フレーズ解除済み)

これらをApachから確認できる任意のフォルダに配置します。

8.httpd-ssl.conf の設定

ファイルの準備も整ったので、apacheにssl通信をする事を認識させるため、設定ファイルの書き換えを行います。

デフォルトの場合以下の位置に配置されている、httpd-ssl.confのファイルを修正します。

/Applications/MAMP/conf/apache/extra/httpd-ssl.conf

具体的な修正箇所は以下のとおりです。

SSLCertificateFile など設定項目のキーでファイルを検索し、書き換えてください。
# でコメントアウト化されていると思うので、コメントも解除しましょう。

SSLCertificateFile "ファイルのディレクトリ/server.csr"
SSLCertificateKeyFile "ファイルのディレクトリ/non-phrase-servername.key"
SSLCertificateChainFile "ファイルのディレクトリ/server-ca.csr"

9. httpd.conf の設定

次に、httpd.confも修正します。

以下記述がある部分がコメントアウトされていると思うので、こちらのコメントアウトを外します。

Include /Applications/MAMP/conf/apache/extra/httpd-ssl.conf

10.wordpressのサイトアドレスを設定

WordPressの「設定 > 一般」より、サイトのアドレスをそれぞれhttpsにしておきます。

11.443ポートの開放

デフォルトの設定だと、SSL通信は443番ポートで通信されるので、ルーターの設定などで443番ポートでサーバーが通信できるように設定します。

12.MAMPの再起動

以上の設定が完了したら、MAMPを再起動しapacheの設定項目を読み込み直します。

これで https://でサイトにアクセスするとSSL通信が行われます。
chromeなどでアクセスして、URL部分に鍵マークが表示され
その部分をクリックして保護されている説明があればOKです。

後述

この様に、かなり面倒な手順となりました。。。

証明書のファイルの下りはツールとかでもっと簡素化できないものかなぁ。。

一つ一つの手順はそんなに難しくはないのですが工程が多かったり、必要なファイルの概念がよくわからなかったりで、けっこう大変です。

手順もどこか漏れがあるかもしれませんが、思い出したらまた追記したいと思います。