メールサーバの証明書が切れてしまってまたイチからやり直しだったので備忘録。
証明書は安さ重視でservertasticのRapidSSLをとります。
年15$ぐらいで安いです。
証明書をとるには先にCSRファイルをサーバで作っとく必要があります。
/etc/pki/tls/misc/にCAというシェルスクリプトがあるのでそれを使います。
CentOS5はそのままだと2048bitで作れないので修正します。
$ sudo vi /etc/pki/tls/misc/ca #99行目辺り? -newreq-nodes) # create a certificate request $REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS
を
$REQ -nodes -newkey rsa:2048 -keyout newreq.pem -out newreq.pem $DAYS
-new を -newkey rsa:2048 に変更
CAスクリプトで秘密鍵と鍵証明書、両方一度に生成できます。
$ cd /etc/pki/tls/misc $ sudo ./CA -newreq-nodes #-nodes付けないとパスフレーズ必至になってしまう [sudo] password for : Generating a 2048 bit RSA private key ...........+++ ..+++ writing new private key to 'newkey.pem' ----- 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) [XX]:JP #国コード State or Province Name (full name) []:Tokyo #都道府県 Locality Name (eg, city) [Default City]:Shibuyaku #市町村 Organization Name (eg, company) [Default Company Ltd]: My Company # 会社名とか.空でも Organizational Unit Name (eg, section) []: #(空) 所属組織名 Common Name (eg, your name or your server's hostname) []:abc.ex.net # 証明書をとるFQDN Email Address []:postmaster@ex.net #サーバ管理者のメールアドレス Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: #空 An optional company name []: #空 Request is in newreq.pem, private key is in newkey.pem
これでnewreq.pemとnewkey.pemができます。
$ sudo openssl req -nodes -newkey rsa:2048 -sha1 -keyout newkey.pem -out newreq.pem
パスフレーズの削除
$ sudo openssl rsa -in newkey.pem -out newkey.pem
パスフレーズ入力してenter
#なんでパスフレーズなしにするかというとpostfixではパスフレーズなしの鍵しか使えないし、apacheで起動するたびにパスフレーズ聞かれて面倒だから。
postfixではnewkey.pemとserver.crt、intermediate.crt
dovecotではnewkey.pemとserver.crt
を使うので
の3つを用意します。
メールで送られてきた証明書といっても添付で送られて来るわけじゃなく
一枚のメールの中に2つの証明書の中身が入ってる
そのメールの Web Server CERTIFICATE の後にある
-----BEGIN CERTIFICATE----- ... ... -----END CERTIFICATE-----
が証明書(crt)で
$ sudo vi /etc/pki/tls/certs/server.crt にコピー
INTERMEDIATE CA:の後にある
-----BEGIN CERTIFICATE----- ... ... -----END CERTIFICATE-----
が中間証明書で
$ sudo vi /etc/pki/tls/certs/intermediate.crt にコピー
どっちも—–END CERTIFICATE—–と—–END CERTIFICATE—–の部分も入れる。
はじめに作ったnewkey.pemを移動。ついでにリネーム
$ sudo cp /etc/pki/tls/misc/newkey.pem /etc/pki/tls/private/server.key
postfix
$ sudo vi /etc/postfix/main.cf smtpd_tls_cert_file = /etc/pki/tls/certs/server.crt smtpd_tls_key_file = /etc/pki/tls/private/server.key smtpd_tls_CAfile = /etc/pki/tls/certs/intermediate.crt
dovecot1.1の場合 (2はまた違う)
$ sudo vi /etc/dovecot.conf ssl_cert_file = /etc/pki/tls/certs/server.crt ssl_key_file = /etc/pki/tls/private/server.key