6

通信のためにネットワーク接続を開こうとする 2 つの C バイナリがあります。

これは外部通信用です。初めてそれを実行すると、OS X のファイアウォールがタイトルにあるメッセージをポップアップ表示します。どうすればこれを取り除くことができますか?

これはコード署名に関連していると思われますか? このバイナリにコード署名するにはどうすればよいですか?

基本的に、このバイナリを 1 台の Mac マシンでビルドし、外部のアプリ ストアに配布する必要があります。

マシンで OS X ファイアウォールが有効になっている場合、ファイアウォールのポップアップを取り除くにはどうすればよいですか?

4

3 に答える 3

8

これは、問題のあるアプリケーション バイナリに自分で署名することで解決できます。

Disclaimer: Signing an application yourself will make an application appear more
secure to the operating system, when in reality it isn’t. Only sign applications
that you are 100% sure are not spyware or otherwise malicious. If you have any
doubts, just uninstall/reinstall.

パート 1: 署名 ID を作成する

アプリに自分で署名するというソリューションでは、署名証明書とも呼ばれる署名 ID を作成する必要があります。これはとても簡単です:

  1. [アプリケーション] > [ユーティリティ] > [キーチェーン アクセス] を開きます。
  2. [キーチェーン アクセス] メニューから、[証明書アシスタント] > [証明書の作成] を選択します。
  3. 証明書の名前を入力します。この名前は、証明書の名前として Keychain Access ユーティリティに表示されます。これは、この証明書を参照するときに使用する名前でもあります。個人的には、「My Signing Identity」という名前を使用しました。</li>
  4. [証明書の種類] メニューから [コード署名] を選択します。
  5. タイプポップアップメニューから自己署名ルートを選択します。
  6. [デフォルトを上書きする] チェックボックスをオンにします。
  7. [続行] をクリックします。
  8. 証明書のシリアル番号を指定します。同じ名前とシリアル番号の証明書が他にない限り、どの番号でもかまいません。
  9. [続行] をクリックします。
  10. 証明書の情報を入力します。実際のデータまたは偽のデータを使用できます。私は個人的に実際のデータを使用しました。
  11. [続行] をクリックします。
  12. 残りのダイアログではデフォルトを受け入れます。

完了すると、キーチェーン アクセスに証明書が表示されます。選択した名前を確認したら、この手順は完了です。素晴らしい!

ステップ 2: アプリケーションに (再) 署名する

次に、アプリケーションに署名する必要があります。これを行うには、ターミナルを再度開き、次のコマンドを使用します。

codesign -s "My Signing Identity" -f /path/to/your/binary/app

ダイアログが表示されるので、「許可」をクリックします。

ここで、アプリケーションを再度開始します。着信接続を受け入れるダイアログが最後にもう一度表示されます。「許可」をクリックします。

ここに画像の説明を入力

今後、警告は表示されなくなります。これで、常に「許可」をクリックしなければならないという不便さを感じることなく、アクティブなファイアウォールのセキュリティを楽しむことができます。

クレジット: この更新および注釈付きソリューション ガイドの出発点となった元のソースは、http://silvanolte.com/blog/2011/01/18/do-you-want-the-application-to-accept-incomingです。 -ネットワーク接続/

于 2014-01-10T18:58:54.317 に答える
1

このソリューションを適用して Arduino OTA で使用されている python を修正しようとしていましたが、署名するファイル パスとして $(which python) を指定したアプリの自己署名を説明する別のソリューションを見つけましたが、私の場合は /usr/ に解決されましたビン/パイソン。これを自己署名するには、ルートレス モードに落として /usr/bin への書き込みを許可する必要があるだけでなく、戻ってテストしたところ、python は着信接続を許可する許可を求めていました。

実際、自己署名する正しい python ファイルは (少なくとも私の場合) /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app です。

この正しいファイル パスに自己署名すると、Arduino OTA プロセスで [着信接続を許可する] をクリックする必要がなくなりました。

それが誰かを助けることを願っています。

于 2016-01-20T00:28:42.153 に答える