TORIPIYO DIARY

recent events, IoT, programming, security topics

safariのプロキシ設定にPACファイルを適用する

例えば、こんなPACファイルを作る。

  • google.co.jp, google.comのアクセス時には、127.0.0.1:8080ポートのプロキシを通って、それ以外のドメインへはプロキシを経由せず直アクセス

google.pac

function FindProxyForURL(url, host) {

// If the hostname matches, send proxy.
if ((host == "google.co.jp") ||
  (host == "google.com"))
{
    return 'PROXY 127.0.0.1:8080';
}

// DEFAULT RULE: All other traffic, use below proxies, in fail-over order.
    return "DIRECT";

}

safariは、PACファイルをHTTP経由でしか読み込めないようなので、仕方ないのでhttpdのdockerコンテナを作る。以下のようなディレクトリ・ファイル構成にして、docker-compose.ymlを作成する。

ディレクトリ・ファイル構成

.
├── docker-compose.yml
├── pac
    └── google.pac

docker-compose.yml

version: '3.3'
services:
  pac:
    image: httpd:2.4
    volumes:
      - ./pac:/usr/local/apache2/htdocs
    ports:
      - "4000:80"

dockerコンテナの起動

docker-compose up


safariのプロキシ設定

これで、safarigoogle.pacのPACファイルが適用されるようになります。