トップ «前の日記(2006年09月15日 (金)) 最新 次の日記(2006年09月17日 (日))» 編集

*Messages*

Search

書いてる人: しまだみつのぶ (aka. simm, saica)

最新情報URL: https://gouketsu.net/simm/d/

"8024402C"でたどり着かれた方はこちら: 「壁の内側からWindowsUpdateに失敗する


2006年09月16日 (土) [長年日記]

1 今月3回目の

無鉄砲。ただし、とんこつは今回が今月初。

待合室らしきものができていた。入店待ちシステムも、行列から名前呼び出し型に変更されていた*1

先週までのカレー祭り状態からは解放されたのか、普段どおりの手際よさに戻っていて、ひと安心。

*1 どうやら混乱があったらしく、また行列に戻ったという話もちらほら。

2 [comp] IMAP4 via SSL

普段のメール環境はgouketsu.netで動いているSMTPとIMAP4を用いているのだが、ここ2年程は、sshで掘ったトンネル経由でメールの読み書きを行っていた。このままでもとくに不自由はなかったのだが、最近状況が一変。W-ZERO3[es]なんてアイテムを入手したからには、[es]からもIMAP4経由でメールの読み書きができるようにしたい。

だた、やはり、パスワードを平文で流すのは避けたい。ということで、gouketsu.netのIMAP4サーバをSSL化することに。

なお、以下の例は、Debian GNU/Linux を用い、IMAPサーバはdovecotを用いるものとする。

オレオレ認証局を作成

本格的にするとなれば、どこかちゃんとしたところから認証してもらう必要があるのだろうが、個人メールのやりとりだけできれば十分なので、今回はオレオレ認証局で認証した証明書を使う。そこで、まずはオレオレ認証局を作成する。

まずは、シェルで以下の操作を行う。

% sudo su
# apt-get install openssl
# cd /etc/ssl
# /usr/lib/ssl/misc/CA.sh -newca

ここで、いろいろ入力を求められる。

CA certificate filename (or enter to create)

ここは何も入力せずにEnter押下。

Making CA certificate ...
Generating a 1024 bit RSA private key
.++++++
.........................................................++++++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:

ここは何か適当にパスフレーズ。

Verifying - Enter PEM pass phrase:

もう一度パスフレーズ。

-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:

日本の場合は"JP"。

State or Province Name (full name) [Some-State]:

都道府県名を入れておけばいい*1。"Nara"とした。

Locality Name (eg, city) []:

市町村名を入れておけばいい*2。"Kashihara"とした。

Organization Name (eg, company) [Internet Widgits Pty Ltd]:

適当に。"gouketsu.net"とした。

Organizational Unit Name (eg, section) []:

何も入力せずEnter押下。

Common Name (eg, YOUR name) []:

これも適当に"gouketsu.net"とした。

Email Address []:

これも適当にメールアドレスを入力しておく。ただし人様に迷惑がかかるようなことだけはないように。

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:

何も入力せずEnter押下。

An optional company name []:

何も入力せずEnter押下。

Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/./cakey.pem:

最初に入力したパスフレーズを入力。あとは、

Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 2 (0x2)
        Validity
            Not Before: Sep 19 17:27:14 2006 GMT
            Not After : Sep 18 17:27:14 2009 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Nara
            organizationName          = gouketsu.net
            commonName                = gouketsu.net
            emailAddress              = ********@gouketsu.net
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Cert Type:
                SSL Server
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                 **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**
            X509v3 Authority Key Identifier:
                keyid:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**

Certificate is to be certified until Sep 18 17:27:14 2009 GMT (1095 days)

Write out database with 1 new entries
Data Base Updated

とメッセージ出力があり、シェルに戻る。 あとは、サーバ証明書を作成。

# openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt
# openssl x509 -inform pem -in ./demoCA/cacert.pem -outform der -out ./demoCA/ca.der

両方とも行う必要はないとは思うが、一応やっておく。これらのうち、いずれかをクライアントにもっていき、証明書をインポートする。Windowsではダブルクリックすると、ダイアログに「証明書のインストール」ボタンがあるので押下。あとは、「証明書の種類に基づいて、自動的に証明書ストアを選択する」を選んでおけば、インポートできる。

サイト証明書署名要求と秘密鍵を作成

# mkdir server
# cd server
# openssl req -new -out server.pem

ここで、CA作成時と同じような入力が必要だが、同じものを入れればいいので、割愛。

# openssl rsa -in privkey.pem -out server.key
# cp -p server.key /etc/ssl/private

サーバ証明書を作成

# openssl ca -out server.crt -infiles server.pem
# cp -p server.crt /etc/ssl/certs

dovecot に秘密鍵とサーバ証明書を設定

/etc/dovecot.dovecot.conf に

ssl_cert_file = /etc/ssl/certs/server.crt
ssl_key_file = /etc/ssl/private/server.key

の2行を追記し、

# /etc/init.d/dovecot restart

でdovecotの再起動をかける。これで、SSLおよびSTARTTLSでの接続が可能となる。

本来なら、dovecotインストール時に、privateとcertsにdovecot.pemが生成されるのでこちらを用いるべきだとは思うが、今回は、手で作成したものを用いた。

TODO

SMTPも同様にSSLもしくはSTARTTLSでの接続を可能にしておきたい。

上記手順で、SSLもしくはSTARTTLS経由のIMAP4接続はできるようになった。が、SMTPのほうは何もしていない。submissionポートを開けておけば接続は可能だが、認証なしというのは怖いので、SASLの設定を行って認証をかける必要がある。その場合、パスワードを平文で流すのは避けたいので、IMAP4同様、SSLで暗号化しておく必要がある。

ということで、近いうちにSMTP接続をSSL化し、そのうえでSASLで認証をかけるようにすることにする。

参考サイト

主に、以下のサイトを見ながら設定を行いました。 著者各位に感謝致します。

*1 まあ何でもいいのだが。

*2 まあ何でもいいのだが。


Information

更新情報取得方法

*Messages* の更新情報取得には、antenna.lirs もしくは index.rdfをご利用ください。 豪傑アンテナLIRSからも取得可能です。