またProxyと格闘 Chromeインストール編
GoogleからオープンソースのWebブラウザ「Google Chrome」のβ版が公開された。
試しにいくつかの社内サイトにアクセスしてみると、噂に違わず動作は軽快な気がする。ネットの記事を見るとJavaScriptの高速化を図ったと書いてあるが、JavaScript以前に起動とかJavaScriptを使用していないページでもさくさく動いてくれるような気がする。これは機能がシンプルな分なのかな。正直シンプルすぎて使いづらいと感じもしなくもないけど。
そんなことはさておいて、今日書こうとしているのはGoogle Chromeをインストールしようとしたときのお話。以前にも少し書いたProxy認証の話である。
社内でWebページを提供している立場上、作ったページはある程度いろんなWebブラウザで表示確認をしてみる。
社内の利用者の大半はIE(及びIEエンジンを利用したブラウザ)か、少数派ながらFireFoxといった感じ。確認する上では一応レンダリングエンジン毎に用意すればいいよなぁと考えて、IE、FireFox、利用者は少ないけどOpera、Safariを自分の端末にインストールしてある。
そういう意味では今回のGoogle ChromeはSafariと同じくWebKitというエンジンを使っているらしい(Wikipediaにはそう書いてあったという程度の知識だけど)ので敢えてインストールすることも無いんだが、一応見ておきたい。
■まずはインストーラを入手
■インストーラの起動
ChromeSetup.exeを起動する。すぐに
というダイアログが表示されるが、その後
と出てくる。それと同時にブラウザが起動されて、Googleのインストーラヘルプセンターのページが表示される(英語)。どうもエラーの内容を説明したものらしく、それによるとイベントビュアーのアプリケーションのページを見ろとのこと。
イベントビュアーにあった該当のログは次のような感じ。
Error: 0x80042197. Http status code: 407.
Url=https://tools.google.com/service/update2 Trying config: source=IE,
named proxy=会社で使っているproxy:proxyのポート・・・<local>.
ってな感じ。HTTPステータスコードの407は「Proxy Authentication Required」。Proxyの認証が必要ですってこと。インストーラは認証Proxyには対応していないらしい。
またProxyかよ(´・ω・`) ってことだ。
以前にも書いた通り、うちの会社では社外のインターネットにアクセスするには会社が用意したProxyサーバを利用する必要があり、Proxyを利用する際にIDとパスワードが必要となる。前に書いたときはLinux上の話だったが、今回はWindowsXPが舞台である。
■さてどうしたものか
インストーラそのものに参照するProxyを設定するようなところは無かった。もしかしてコマンドラインで指定すればできるのか知らないけど、発表されたばっかりだとそういう情報も少ないんだろうし、その線は置いておく。
以前、先輩から聞いた話で、「自分のPCの中でProxyサーバ立ち上げて、そいつに認証代行させちゃったら?」なんてことを言われたことがある。確かにその方法を使えば、Chromeインストーラのように認証Proxyに対応していないアプリでも、そいつ自身が認証をすることなく動作することはできそうだ。
で、ネットを探し回っていたら、stoneというものを見つけた。アプリケーションレベルのシンプルリピータなんだって。シンプルリピータがどんなものか、いまいちイメージできない・・(‥;) でも使い方を見ると、proxyサーバ機能らしい? この解釈は間違い?^^;
stoneの作者自身が書いた、stoneを使ったProxy代行認証の記事も見つけた。ここはとにかくこいつでなんとかしてみることにする。
■stoneのダウンロード
こちらのページからいただいた。
http://www.nanno.org/sengoku/stone/Welcome.ja.html
■stoneのインストール
ダウンロードしたzipファイルを展開すると、exeファイルやdllファイルなどが入ったディレクトリができる。これを適当なところにコピーするだけ。
■stoneの使い方
起動オプションがたくさんあるのだが、とりあえず今回Proxyの認証代行をしてもらうに当たって必要な作業は次の通り。
(1)コマンドオプションファイルを作る
コマンドラインで直接オプションを入力できるんだけど、長くなったりするのでファイルにしておくことにする。アクセスするときのポートに合わせて、「8080.cfg」というファイルをstoneと同じディレクトリに作った。
(2)コマンドオプションファイルにオプションを書く
コマンドオプションファイルの中は、通常stoneに起動オプションとして書く文字列を書いておけばいい。
便利なのは、コマンドオプションファイルの中身については改行を無視して処理をしてくれること。なのて、読みやすいように改行を入れておくことができる。
ちなみに、環境は以下を仮定している。あくまでも仮定。中身の値は嘘っぱちだ。
- proxyサーバ名:proxyserver.co.jp
- proxyのポート:8000
- 認証に必要なID:takeblizzard
- 認証に必要なパスワード:password
- 自PC内でstoneが待ち受けしてくれるポート:8080
proxyserver.co.jp:8000/proxy 8080 "Proxy-Authorization: Basic dGFrZWJsaXp6YXJkOnBhc3N3b3Jk" localhost
1行目の解説は不要か。
2行目のダブルコーテーションで囲まれた部分は、Proxyの認証を通すためのデータ。後半部分はIDとパスワードを:(コロン)でつないだもの(今回の場合は「takeblizzard:password」)をBASE64でエンコードしたもの。使い回すときはここの部分を適宜変更する必要がある。
BASE64のエンコードは、vectorやなんかに変換してくれるユーティリティなどがあると思うのでそちらで。
また、Webページ上でBASE64変換をしてくれるようなページもちらほらあるようだけど、変換するものがIDとパスワードだからねぇ・・・関係無いところに変な足跡残したくはないなんて場合は注意が必要。
3行目はアクセス許可リスト。ローカルからのアクセスしか許さないんだからー(´д`)
(3)stoneの起動
コマンドラインから、次のコマンドを入力する。
自分はこのコマンドラインが入ってるバッチファイルを用意してしまった。このコマンドラインでさえ忘れてしまいそうなので(´з`)y-~
起動すると、プロンプトには戻ってこない。ちなみにCtrl-Cも効かないみたい。終わらせるときはコマンドプロンプトごと終わらせる。
(4)IEの設定変更
これは、どうもChromeインストーラがIEに設定されているProxy情報を元に動いてるっぽいので、IEの設定を変更するという話。
IEが使用するProxyの設定を、通常利用している認証が必要なProxyから、認証を代行してくれるstoneに切り換えるのだ。
なので、proxyサーバ名には「localhost」、ポートは8080(これはコマンドオプションファイルの2行目にそう書いたから)を設定する。
Proxyの設定場所がどこかを書いておく必要は無いよな・・・もともと認証が必要なProxyが設定してあるはずなんだし(-_-)
(5)Chromeインストーラの起動
これでエラーが出ることなくインストールの処理が進み、Chromeを無事インストールすることができた。
インストールが終わった後はstoneを終了し、IEの設定も元に戻しておく。
これをしないと、自PC内の知らないアプリが自分のID、パスワードを使って勝手に外のインターネットと通信し放題になってしまうので、これも注意。
■Chromeを使ってみて
冒頭にも書いた通り、社内のサイト(認証Proxyを通す必要の無いアクセス)はさくさく動いて問題無い。ところが認証Proxyを通して社外のサイトにアクセスしようとすると、一つのページに何度もIDパスワードを要求するは、途中であきらめて表示しなくなるはと、認証Proxyの考慮はあまりされていないということがよくわかりました。ちゃんちゃん。
しばらく社内ではChromeのことは忘れることにしよう。うんそうしよう。


最近のコメント