2年間で$259の証明書。Thawteの Root CAはPCであれば通常組み込まれていて警告が出なくなる。 mimori.org用にも発行して組み込んだ。 作業開始から発行完了まで30分ぐらいだった。なんかもうドメイン取得と同レベルだな。
どちらかというと主目的はメールサーバのSSLによるアクセスで。 自分だけじゃなくて10人程度で利用することになるので、これぐらいの値段なら許容の範囲内であろう。
携帯からもアクセスできるようにしようと思うと8万円/年コースだが、それはちょっと趣味の範囲内でない気がする。
CSRを作る時は以下のパラメータで作った。
C=JP, ST=Tokyo, L=Bunkyo, O=mimori.org, OU=Administrators, CN=mimori.org, emailAddress=webmaster@mimori.org
出来た証明書の中の Subject はこうなってた。
O=mimori.org, OU=Domain Validated, OU=Go to https://www.thawte.com/repository/index.html, OU=Thawte SSL123 certificate, CN=mimori.org
証明書発行までで向こうが信用できそうな情報は、「クレジットカードの情報」と「ドメイン登録されたメールアドレスに確かに届いた」ぐらいなので、 納得できる展開。
次回覚えてたら O= の後ろはもう少し気の効いたフレーズにしよう。二年後だが。
FreeBSD上でのCSR作成には以下の Makefile を利用している。主なところはここ数年ほとんど変わっていない。
csr::
echo "Making the request from ${HOST}.cnf"
dd if=/dev/urandom of=/tmp/ssl.rand count=1
openssl req -new -nodes -newkey rsa:1024 -sha1 -keyform PEM -config ${HOST}.cnf -keyout ${HOST}.key -outform PEM -out ${HOST}.csr
chmod 600 ${HOST}.key
openssl gendh -rand /tmp/ssl.rand 512 > ${HOST}.dh
chmod 600 ${HOST}.dh
rm -f /tmp/ssl.rand
echo "Please put the signed certificate to ${HOST}.crt"
courier-imapd:
# courier-imapd 用の証明書ファイルを作成する
cat ${HOST}.key ${HOST}.crt ${HOST}.dh > ${HOST}.pem
chmod 600 ${HOST}.pem
sudo chown root ${HOST}.pem
sudo chgrp wheel ${HOST}.pem
dertopem::
# DERからPEM形式に変換
openssl x509 -inform der -outform pem -in ${HOST}.crt -out ${HOST}.pem
hashlink::
# CA証明書の magiclink を作る
ln -s ${CAFILE} `openssl x509 -noout -hash -inform pem -in ${CAFILE}`.0
decryptkey::
# 秘密鍵のパスワード解除
openssl rsa -in ${HOST}.key.crypt -out ${HOST}.key
p12::
# WindowsやMacでのインポート用にPKCS#12形式のファイルを作る
openssl pkcs12 -export -in ${HOST}.crt -inkey ${HOST}.key -name ${HOST} -out ${HOST}.p12
chmod 600 ${HOST}.p12
対話はしないので makeを実行する前に CSRを作るためのパラメータファイルを用意する。
mimori.org-2005.cnf
RANDFILE = /tmp/ssl.rand [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_extensions = cert_type prompt = no [ req_dn ] C=JP ST=Tokyo L=Bunkyo O=mimori.org OU=Administrators CN=mimori.org emailAddress=webmaster@mimori.org [ cert_type ] nsCertType = server # nsCertType = client, email # nsCertType = client, email, objsign keyUsage = digitalSignature, keyEncipherment, dataEncipherment
ここまで準備したら make HOST=mimori.org-2005 csr を実行するとCSRが作成される。
CSRを証明機関に送りつけて、出来上がった証明書は mimori.org-2005.crt として保存して終了。
Thawteの場合、中間CA証明書もインストールしないといけないのでその作業もした。
中間CA証明書を apache2 の SSLCACertificatePath ディレクティブで指定したディレクトリに thawte-ssl123.crt として保存した後、
make CAFILE=thawte-ssl123.crt magiclink を実行してmagiclinkを作成する。
ちなみに中間じゃなく Root CA証明書も SSLCACertificatePath ディレクティブで指定したディレクトリに保存し、
magiclinkを作成してある状態だった。
.cnfファイルは、コピーするだけで使い回せるので、renew する際の手間のかけ方はまあまあ少ない方だと思う。
DER(Distinguished Encoding Rules) がどういうエンコード方式なのかを、初めて見た。
すごい勢いで増えてる。素晴らしい。
OpenSSL::SSL::SSLSocket
なんかかなりお役立ち。
最近はSSLのテストに openssl s_client コマンド使いまくりだったりしたのだが、
ソケット通信以外の情報の出力先を変えたいなーと思っていたところだ。
証明書発行要求(CSR)の作成 † 証明書発行要求(CSR)を作成する為のconfigファイル(imapd.cnf)を作成する。 configファイル(imapd.cnf)の内容 RANDFILE = /tmp/ssl.rand [ req ] default_bits = 1024 encrypt_key = yes distinguished_name = req_dn x509_exte...