SMTP-AUTH用の証明書を作る

酔っぱらった日は証明書のメンテナンスに限る.

ということで,デフォルトで入ってたSnakeOil証明書に甘んじていた我が家のPostfixを,もう少しましな感じにしようかなと決意する.結局,第四種オレオレ証明書だけどね.

作業手順

/etc/ssl/demoCAができてる事が前提.無い人は/usr/lib/ssl/misc/CA.pl -newcaで.

秘密鍵作る
# cd /etc/ssl
# openssl genrsa -out demoCA/private/`hostname`.key 2048
Generating RSA private key, 2048 bit long modulus
............................................+++
...............................................+++
e is 65537 (0x10001)

作った秘密鍵の中身を確認したければ以下のような感じで.

# openssl rsa -in demoCA/private/`hostname`.key -text
CSRつくる
# openssl req -new -key demoCA/private/`hostname`.key -out csr.pem

OUとかコモンネーム(CN)などを聞かれるので適切に答えていくと,CSRファイルができる.
作ったCSRの中身を確認するには,以下のような感じで.

# openssl req -in csr.pem -text
署名するぜ(by CA)

ここでCAの立場になる.
先ほど作ったCSRをもとに,証明書を発行する.

# openssl ca -in csr.pem -out demoCA/certs/`hostname`.pem -days 3650
Using configuration from /usr/lib/ssl/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
            de:ad:be:ef:ab:ad:ca:fe
        Validity
            Not Before: Apr 25 00:00:00 2008 GMT
            Not After : Apr 25 00:00:00 2018 GMT
        Subject:
            countryName               = JP
            stateOrProvinceName       = Foreign
            organizationName          = My company
            organizationalUnitName    = My Unit
            commonName                = mail.example.com
            emailAddress              = webmaster@example.com
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                DE:AD:BE:EF:AB:AD:CA:FE:DE:AD:BE:EF:AB:AD:CA:FE:DE:AD:BE:EF
            X509v3 Authority Key Identifier:
                keyid:DE:AD:BE:EF:AB:AD:CA:FE:DE:AD:BE:EF:AB:AD:CA:FE:DE:AD:BE:EF

Certificate is to be certified until Apr 25 00:00:00 2018 GMT (3650 days)
Sign the certificate? [y/n]:

証明書の中身を確認し,問題がなければ y と入力.

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

これで完了

Postix SMTP-AUTH用設定

main.cfで

smtpd_tls_cert_file=/etc/ssl/demoCA/certs/EXAMPLE.pem
smtpd_tls_key_file=/etc/ssl/demoCA/private/EXAMPLE.key

再読み込み

# /etc/init.d/postfix reload
Reloading Postfix configuration...done.

これでSnakeOilから脱却.やったね.