2005年2月1日(火) また雪だって
● そして僕は寝坊…
● [memo] 巷のWWWブラウザには実在証明のないSSL証明書を認証するルート証明書がすでに入っている
先日、yamk日記で、セキュリティ証明書を無償で発行する認証機関、CAcert.orgの証明書を巷のブラウザのルート証明書として入れてほしい、という話題がありました。 サービスを提供する側としては、既存の認証機関から高い証明書を買う必要がない、というのはうれしいことなのだけれど、例えばクレジットカードを入力する時に実在証明の無いWWWサイトに入力するのは避けたいので、利用者の面からはあまりいい加減な認証機関の証明書は入れてほしくないな、と思ってました。
ところが、tachのアレゲ日記より、SSL証明書には既に簡易証明書と実在証明もついた証明書があるという指摘。確かに、 https://www.valinux.co.jp/のSSL証明書とhttps://sourceforge.jp/の証明書には違いがありました。
まず、https://www.valinux.co.jpの証明書には、Subjectとして、
CN = www.valinux.co.jp O = VA Linux Systems Japan K.K. L = Chiyoda-ku ST = Tokyo C = JP
と書いてあります。ふむふむVA Linux Systems Japan K.K.は千代田区にあるのか。
一方、sourceforge.jpはどこにあるかというと、
CN = sourceforge.jp OU = Domain Control Validated OU = See www.geotrust.com/quickssl/cps (c)04 OU = https://services.choicepoint.net/get.jsp?2936769041 O = sourceforge.jp C = JP
どこにもなーい。どちらの証明書も、Issuerは、
OU = Equifax Secure Certificate Authority O = Equifax C = US
でした。
僕のFirefoxにはこの認証機関の証明書が入っているので、上のページはどちらも警告のダイアログを見ることなしに閲覧することができます。
ということは。現時点ですでに、httpsの通信先が実在する企業である保証は、サイトの証明書を詳しく見ない限り、無いわけですね。これは知らなかった。オンラインショッピングなどをする場合には、httpsでつながっていることを確認するだけでは不十分(意図したホストに暗号化された通信路でデータを送信していることはわかっても、そのホストが意図した企業によって運営されているか確認できない)で、サイト証明書をちゃんと見た方がいいみたいですね。
勉強になった。オンラインショッピングなんてしないけど。
(追記)tachのアレゲ日記でとりあげていただきました。「これ(実在証明のない SSL サーバ証明書)自体は価値がないわけでなく,」とのこと。その通りだと思います。sourceforge.jp/orgは僕もよく利用させていただいてるし、通信路が暗号化されているので安心です。気になったのは、サイトの証明書の詳細を見ないと、そのサイトが、クレジットカード情報を送るに値するちゃんとした会社なのか、ネットワーク上だけの存在なのかわからない、ということです。
2006年2月1日(水) ひさびさ自転車通勤
● [tDiary] 予定多すぎ
職場内tDiaryが今日の日記を表示しなくなった。将来の予定が多すぎて「最新」から漏れてしまうようになったため。
本当はtdiary.rbを改造して、「最新」のカウントをその日の日記から始めるようにしたいところなのだけれどかなり複雑なことをやっていそうで理解できなかったので、とりあえず下記を.htaccessに書いてお茶を濁した。
RewriteRule ^today(-[0-9]+)?\.html %{TIME_YEAR}%{TIME_MON}%{TIME_DAY}$1.html [L]
today.htmlでその日の日記を閲覧できるようになる。一つのURLが日によって別の内容を指すのは良くないような気もするのだけれど、「最新」のURLも著者が日記を書くにつれて別の内容になっていくのだし、まあいいか。
本当は、today+7.htmlとかで一週間の予定を見たいところ。でもtdiary.rbの改造が必要なのでやらない。
● [tDiary] 予定多すぎ(2)
上の行は、RewriteRuleの最初に書いておけば[L]を無くして一度のスキャンでdate=…の形式まで持っていけることに気づいた。ついでに一週間先の予定まで表示するようにしてしまった。むちゃくちゃいい加減なパッチ。日付に付け加える「-n」と「+n」の意味が違うところがなさけない。-nだとn日分だけれど+nだと予定の有無に関わらずn日先、ということになる。
Index: index.rb
===================================================================
RCS file: /cvsroot/tdiary/core/index.rb,v
retrieving revision 1.30
diff -u -r1.30 index.rb
--- index.rb 13 Jun 2005 05:05:11 -0000 1.30
+++ index.rb 1 Feb 2006 23:22:21 -0000
@@ -1,4 +1,4 @@
-#!/usr/bin/env ruby
+#!/usr/bin/ruby
#
# index.rb $Revision: 1.30 $
#
@@ -33,6 +33,11 @@
date = @cgi.params['date'][0]
if /^\d{8}-\d+$/ =~ date then
tdiary = TDiary::TDiaryLatest::new( @cgi, "latest.rhtml", conf )
+ elsif /^(\d{8}) (\d+)$/ =~ date then
+ days = $2
+ startdate = Time.local(*($1.scan(/(\d{4})(\d\d)(\d\d)/)[0])) + 3600*24*days.to_i
+ @cgi.params['date'][0] = "#{startdate.strftime('%Y%m%d')}-#{days}"
+ tdiary = TDiary::TDiaryLatest::new( @cgi, "latest.rhtml", conf )
elsif /^\d{8}$/ =~ date
tdiary = TDiary::TDiaryDay::new( @cgi, "day.rhtml", conf )
elsif /^\d{6}$/ =~ date then
「today+7.html」というURLのプラス記号はスペースに変換されることを忘れていてすこし悩んだ。
2007年2月1日(木) おなかがいたいよ
● [DocoMomo] /etc最小版のinitrd
昨日作った リストを見て、 ファイルとディレクトリを下記にしぼったinitrdを作ってみました。
/sbin /bin /lib /etc/sysconfig/keyboard /etc/sysconfig/init /etc/mtab /etc/ld.so.cache /etc/termcap /etc/security/console.perms.d/50-default.perms /etc/security/console.perms.d/60-libnjb.perms /etc/security/console.perms /etc/inittab /etc/dev.d/default /etc/rc.sysinit /etc/init.d /etc/rc?.d /etc/localtime /etc/cpuspeed.conf /etc/profile /etc/rc /etc/selinux/config /etc/nsswitch.conf /etc/passwd /etc/fstab /etc/blkid/blkid.tab /etc/inputrc /etc/rc.local /etc/momonga-release /etc/redhat-release
とりあえずはハードディスクの/bootにコピーしてgrubから選択して run level 1に起動できるか試してみました。こういう時にファイルだけ 置いておけば後から選べるgrubは便利です。 起動には無事成功して、rootのシェルが使えました。
で、initrdのイメージ(cpioアーカイブをgzip -9で圧縮したもの)の 大きさは、docomomo-0.9.4の29890893バイトに対して/etcをしぼったもの が28872983バイト。これだけ苦労して3.4%の減量。またこれか…。 とは言え、実メモリの使用量はこの差1Mバイト程度は減るわけで、それ はそれでうれしいのかもしれません。
一方、etcをext2のイメージとして持つ場合には、およそ6メガバイト のファイルになります。つまり/etcを後から変えられないDocoMomoに対 して、USBメモリに入るファイルの大きさは合計5メガバイト増える計算。 …まあ許容範囲かなあ。
いまのところ、上のリストにもあるように、/sbin /bin /lib以下の ファイルは全てinitrdに入れるようにしています。これはrun level 1で そこそこの作業ができるようにしたい、と思っているからです。ここで、 /libの内容は、/binにあるファイルからリンクされているものと 昨日のリストにあるものに 限ると、まだまだ減量できるかもしれないですね。そのかわり、/libの 内容もSquashFSにして別のファイルとして持つことになります。あぁ、 unionfsにできるといいのにな。でも、unionfsは、Momongaのカーネルが対応す るまではおあずけです。
(追記) あー。/etc/passwd消し忘れてました。
● [DocoMomo] /lib最小版のinitrd
次に、/etc/passwdを消したあとに、/libにはinitrdに行くコマンドからリンクされているライブラリと、/lib/modulesと、/lib/kbd以下の必要なファイルだけを入れたinitrdを作ってみました。gzip -9したイメージは25068170バイト。これは効く。
で、ブートしてみてわかたことは、rc.sysinitが実行する/sbin/pam_console_applyなどがlibnss_files.so.2を必要とするが、lddでは見つけれられない(nsswitch.confを見てからロードするライブラリを決めるのかな)、また、rc.sysinitは他にもchownやchgrpを実行して、/etc/passwdにrootの行が、/etc/groupに root utmp floppy disk uucp の行が必要、ということでした。
そろそろ、これまでにわかったことをDocoMomoのMakefileに反映して、run level 3まで行く試験をしたいところです。
● ruby-entity-reference-0.1.6をリリースしました
ruby-entity-referenceは、ISO-8859-1あるいはUTF-8の文字列のうち、ヨーロッパ言語の一部の文字を実体参照に変換します。多言語のwwwページの文字コードの変換などの際にお使いください。
リリース0.1.6では、ドキュメントを整備しました。使用例や、APIドキュメントもあります。通常使うAPIは、EntityReference.referenciate(string, encoding, charset)だけなのですが。
2008年2月1日(金) 出張復路
● 寒いなか、オープンツーシーターで日暮里まで送ってもらった。スーツケースがトランクに入るか心配だったが何とかなった。それにしても気持ちいいぞ!どうもありがとう。
● NRT-HNL B747 LR SUD(たぶん)
古い機材。個人用のテレビが無かったが、あったとしても夜なので見ない。このごろのJALはメニューを座席のポケットに入れなくなったんだね。人件費の節約かな。スチュワーデスさんによると今晩のメニューはハンバーグかパスタとのこと。どういう選択肢やねん。おまけにパスタを選んだたら「あるかどうか見てきます」だって。
● HNL-ITO B717
となりのおばさんが携帯電話をとりだして通じないなあ、と悩んでる。えーと、そりゃ電波届かないっしょ。いつも電波の届くところに居ると、どこでも電波が届くと思いこんじゃうんだよね、きっと。
脳味噌から汁が出るくらい考える。こともある。
最近のツッコまれどころ