2010/04/05

ocaml ssl

SSL で繋いで証明書を取ってこようシリーズ
今回は OCaml でいってみようと思います
OCaml に関してはプログラミング in OCaml など見ると良いのかも

とりあえずググりますと
http://sourceforge.net/projects/savonet/files/ocaml-ssl/
こちらに OpenSSL の binding があったのでこれを使おうかと思いまして
っていうかね、
OCamlで簡易SSLクライアント - komamitsu.log
こんな素敵なまとめページが見つかってしまいました

OCaml-SSL をインストールしようとすると
「findlib が無いよ」
って言われたので findlib から入れました
で、使い方は上記ページを参考にしつつ試して動いた感じです

OCaml-SSL のソースをザザっと眺めてみたんですが
証明書をいじる関数があまり用意されていないらしく
というか subject と issuer を抜くものしかありませんでした
あらら

とりあえず minimal かと思われる証明書取ってくるのがこれ
open Unix;;

Ssl.init ();;
let hostent = gethostbyname "www.google.com";;
let addr = hostent.h_addr_list.(0);;
let sockaddr = ADDR_INET(addr, 443);;

let sock = Ssl.open_connection Ssl.SSLv23 (ADDR_INET(addr, 443));;
let cert = Ssl.get_certificate sock;;
Printf.printf "%s%!" (Ssl.get_subject cert)
っていうか何というコード
変数に欲しいもの列記して実行してるだけです
って OpenSSL をいじってるわけだから仕方ないのかな?

でまぁこんなのを show_subject.ml として用意して
ocamlfind c -package ssl -thread -linkpkg -o show_subject show_subject.ml
と打つとコマンドができました

findlib っていうのがあるのだというのを知ったのが
今回の最大の成果となっております

0 件のコメント:

コメントを投稿