Posts By: 黒川 仁

Apacheのログに出力される時刻の形式は

[19/Jun/2013:13:52:02 +0900]

のようになっている。

ログファイル – Apache HTTP サーバ
ドキュメントによると次のような形式とのこと。

[day/month/year:hour:minute:second zone]
day = 2*digit
month = 3*letter
year = 4*digit
hour = 2*digit
minute = 2*digit
second = 2*digit
zone = (`+' | `-') 4*digit

さすがにDateTime.parseに突っ込んでもパースできず。
続きを読む

コーヒー

私はコーヒーを毎日のように飲みます。それをどこかで飲むかというと、最近ではなるべくカフェとか喫茶店など外で飲むようにしてます。

最近だとコメダ珈琲、タリーズ、スタバとかで仕事しながら飲んでます。

以前はよく自宅で既に挽いた豆でドリップしてたんですが、飲み過ぎるのでやめてしまったのです。
続きを読む

IPアドレスの正規表現はどう書いたらよいか調べてみた。Rubyで使用することを想定している。

ここの記事に書いてあるのが良さそうなので採用することにした。
How to Match IPv4 Addresses with Regular Expressions – O’Reilly Answers

^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

これまで簡単な正規表現しか使ってこなかったので、最初見たときよくわからなかった。。。
続きを読む

あんまり使ってなかったんだけど、ちょうどよい機会があったのでgistを触ってみた。なんだか、すでにあるファイルをいちいちコピーペしてファイル名を入れてというのは面倒くさいなぁと思った。そこで、たしかgistのコマンドラインが用意されているはずだということで調べてみた。

Homebrewで配布されていることがわかったのでbrewコマンドでインストールする。

brew install gist

続きを読む

DovecotでSSLの設定はできたので、今度はPostfixでの設定をしてみる。
以前の記事: Dovecot v2.x SSLの設定

証明書関連のファイルの名前は次の通りとする。

  • 証明書: example.com.crt
  • 認証鍵: example.com.key
  • 中間証明書: example.com.ca-bundle

続きを読む

Postfix Adminの設定には、短すぎるパスワードを登録できないように、パスワードの最小文字数を指定する$CONF[‘min_password_length’]というものがある。

ずっとこれが効いてるものだとおもっていたら、どうも効いてない感じがする。調べてみると、アドレス作成時にも管理者作成時にもパスワード文字数のチェックが効いてないことがわかった。

そして、パスワードを変更するときにようやく文字数チェックが行われている謎仕様・・・

しようがないので、自分でソースを修正してみた。
https://gist.github.com/krhitoshi/5755014
続きを読む

ワイルドカードSSL証明書を前に取得してて、Apacheにしか使ってなかったので、そろそろメールにも
ということで、まずはDovecotにSSLの設定をしてみた。

設定は結構簡単で、10-ssl.confに証明書と認証鍵と中間証明書のファイルを指定するだけ。
中間証明書はssl_caで指定する。
続きを読む

Mac + OpenSSL (homebrew) + rbenvという環境でNet::HTTP使ってSSLでの通信をしようと思ったらエラーがでた。

net/http.rb:917:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError)

たとえば、こんな感じのコードでhttpsなURLにアクセスする場合。

require 'net/https'
require 'uri'

url = URI.parse('https://www.google.co.jp/')
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
https.start do |http|
  res = http.get('/')
  puts res.body
end

そういえば前にもこのエラー見たなぁとも思いながら調べてみる。
ようするに、クライアント側にバンドルされるべきの証明書がないのが原因らしい。
続きを読む

ここ2週間くらいは「技術者モード」で生活している。

技術者モードっていうのはなにかというと、私の中で技術を生活のメインテーマとしているということ。

技術といってもぼんやりしてるのだけど、それはプログラミングだったり、サーバ運用だったりするわけです。

プログラミングをもう少し見るとRubyだったりJavaScriptだったりObjective-Cだったりするのです。
続きを読む

Scroll To Top