Ruby で openssl を使う(インストール)

Rubyで Net::HTTPS を使おうとしたら、require ‘net/https’ でエラー。どうやら、 require ‘net/https’ した時に、中で require ‘openssl’ を呼べてないぽい。環境はDebian sarge 。

Rubyをソースから入れたので、zlibのインストール の時のような手順で入れたら入った。

Rubyforge からダウンロードした ruby のソースコードのディレクトリへ移動。ディレクトリ名を ruby-1.8.5 とする。openssl は既にインストール済みだった。以下のようなコマンドでインストール出来た。

$ cd ruby-1.8.5/ext/openssl
$ ruby extconf.rb
$ make
# make install

チェックしてみる。

$ irb
irb(main):001:0> require 'openssl'
=> true

通ってるようだ。

ruby extconf.rb--with-openssl-dir=/usr/local/openssl のような形で指定することも出来るようだが、自動的に見つけてくれた模様。

ちなみに、Ubuntu8.04 の環境だと、初めは libssl-dev が入っていないので、apt で入れてあげましょう。

% sudo apt-get install libssl-dev
Ruby で openssl を使う(インストール)

Vimのcolorschemeの追加方法

MacでVimのcolorschemeを pablo っていうのにして使ってたんだけど、 Rails やるときに <% が青くて大変見辛かったので、 billw というのにしてみた。オレンジ系でいい感じ。たまに気分転換で変えるのはありかもわからんね。よく見ると、ただ色が書いてあるだけなので、自分で作る事も可能なのだが、インストール方法は以下のような感じ。

vim online にアクセスする。Search for Scripts という部分で、typecolor scheme にして、お目当てのものを検索。何も入力しないで検索すると一覧が出る。

実際の色は カラースキーマのスクリーンショット[名無しのVIM使い] を見ると一発で分かって良いです。

ダウンロードしたスキーマファイルを、~/.vim/colors/ に入れて、.vimrc に colorscheme billw と書けばよい。

Vimのcolorschemeの追加方法

PoundでSSLラッパーを作る

Pound2.3.2 をインストールしたら、前と設定の仕方が若干変わっていた。

昔は、ListehHTTPとListenHTTPSの中にそれぞれ Service を書けば動いたんだけど。公式サイトみたら、若干変わってたような感じがした。

以下の様に、まずListenHTTPSとListenHTTPを書く。その後にServiceを書き始める。SSLの判別はアプリ側でやったほうがよさげ。

ListenHTTPS
  Address 192.168.1.1
  Port 443
  Cert "/usr/local/etc/example.pem"
  AddHeader "X-Forwarded-Proto: https"
  HeadRemove "X-Forwarded-Proto"
End

ListenHTTP
  Address 192.168.1.1
  Port 80
  xHTTP  2
End

Service
  HeadRequire "Host: test.com"
  BackEnd
    Address 127.0.0.1
    Port 8200
  End
End

ネットでPoundはヘッダの情報を書き換えないって書いてあったけど、下記のように書かないと通信がhttpsで来たという情報がバックエンドに伝わってこない。

AddHeader "X-Forwarded-Proto: https"
HeadRemove "X-Forwarded-Proto"

これを書かないと、 request.ssl?false になってしまう。ssl_required をかけてるとリダイレクトがループしてとても困る。

PoundでSSLラッパーを作る