rcmdnk's blog

Amazon.co.jp: Maximizing Microsofts Azure for Dev, Test, and DevOps Scenarios (Mini-Book Technology Series 3) (English Edition) 電子書籍: Rand Morimoto, Guy Yardeni: Kindleストア

このブログをMacでローカルでレビューする時には Pow を使ってますが、 デフォルトで指定されている.devというドメインが Google Chrome上では扱いが面倒な事になっているので .testというドメインで使える様にしました。

Sponsored Links

Pow

PowはMac (OS X)で使えるRackを使ったウェブサーバーで ~/.pow/というディレクトリの下にサイトのトップディレクトリを置いておくと、 http://directory_name.devというURLで見れる様にしてくれるツールです。

Macでは1番使うのが楽です。 powというプロセスが常時作動する様になりますが 使ってない時はほとんどリソースを使わないので無視できる程度です。

通常HTTPな接続ですが、HTTPSな接続を試したい時はtunnelsというコマンドで ポートを変換して使う事も出来ます。

また、xip.ioを使って他の端末から見ることも可能です。

Chromeでの問題

問題はGoogleが.devというTDL(トップレベルドメイン、東京ディズニーランドじゃない)を2015年位に購入していて、 このドメインについてChrome 63からHTTPSを強制する様になったからです。 (http://octopress.devを開こうとしても即座にhttps://octopress.devに飛ばされる。)

以前も同じような問題は起こっていましたが色々と抜け道があってなんとかなってた様ですが Chrome 63からは完全に駄目になったようです。

.dev domains not accessible in latest Chrome · Issue #397 · basecamp/pow

ただ、以前はChromeは余り使ってませんでしたが、たまに使う際には見えてた様な気がするんですが。

いずれにしろChrome 63は2017年12月6日正式リリースですが、その後アップデートしてからどうやっても駄目になっていました。

ちょっと探してみると、powでなくてもローカルテストとして.devを使っていた、という人は沢山いて、 その場合にも色々困ったことになってるようです。

上に書いたtunnelsとかを使ってみると、 この説ぜ奥ではプライバシーが保護されませんページが表示されますが、 詳細情報を表示してみると、

octopress.dev では HSTS が使用されているため、現在アクセスできません。通常、ネットワーク エラーやネットワークへの攻撃は一時的なものです。しばらくするとページにアクセスできるようになります。

みたいなエラーな内容で、 通常、証明書がちゃんと用意されてないサイトに接続した時に出る …にアクセスする(安全ではありません) と言った無理やりアクセスするためのリンクがありません。

ので、.devはどうやってもChromeでは見れない様です。

解決法

1つはFirefoxやSafari等、他のブラウザを使うこと。

Chromeを使いたい場合には.dev以外のドメインを使うしかありません。

Powでは.testというドメインを使う方法が用意されています。

pow/MANUAL.md Configuring Top-Level Domains

環境変数にPOW_DOMAINS=test,localを入れてPowを再インストールすれば有効になります。

$ export POW_DOMAINS=test,local
$ curl get.pow.cx/uninstall.sh | sh
$ curl get.pow.cx/install.sh | sh

インストールの途中で

*** Installing system configuration files as root...
/etc/resolver/dev
/etc/resolver/test
...

みたいにtestに関するものもインストールされるはずです。

実際に/etc/resolver/testというファイルが出来てればOKです。

この設定をしてもdevも同様にインストールされ.devでも見れるような状態にはなっています。 (testdevも内容は同じ。)

これで、http://octopress.testなどにアクセスすればChromeからも見れる様になります。

ちなみにこの設定を色々試してみましたが、

  • /etc/resolver/に自分でtest加えて

      launchctl unload -w ~/Library/LaunchAgents/cx.pow.powd.plist
      sudo launchctl unload -w /Library/LaunchDaemons/cx.pow.firewall.plist
      sudo launchctl load -w /Library/LaunchDaemons/cx.pow.firewall.plist
      launchctl load -w ~/Library/LaunchAgents/cx.pow.powd.plist
    

    とかしても有効にならない。

  • export POW_DOMAINS=xxx,localとかしても.dev.xxxドメインは有効に出来ない。.testだけ。
  • 一度.testを有効にすると、その後環境変数を設定してない状態で再インストールしたりしても.testが有効になる。
    • uninstallスクリプトで消えない設定ファイルがどこかにある…?

といったところ。 今のところ.testは他で使ってないので問題ないですが、 もし、他のツールで.testドメインを使ってテストとかしている場合には ちょっと注意が必要かもしれません。

ちなみに、Homebrewでbrew install powでインストールできるのですが、 この場合、Caveatsで出てきますが自分でディレクトリを用意したり launchd agentを立ち上げたりしないといけないので色々面倒なので Powは公式スクリプトで入れた方が楽です。

Sponsored Links
Sponsored Links

« Blink: iOSでmoshを使う Pythonで環境変数を含む文字列を解析する方法 »