======SSL 証明書の作成====== メールサーバの証明書が切れてしまってまたイチからやり直しだったので備忘録。 証明書は安さ重視で[[https://www.servertastic.com/|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スクリプトを利用したCSRの生成==== 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ができます。 ====コマンドでCSRの生成===== $ sudo openssl req -nodes -newkey rsa:2048 -sha1 -keyout newkey.pem -out newreq.pem [[http://www.openssl.org/docs/apps/req.html|reqコマンドのマニュアル ]] ====間違えてパスフレーズ入れちゃった場合===== パスフレーズの削除 $ sudo openssl rsa -in newkey.pem -out newkey.pem パスフレーズ入力してenter #なんでパスフレーズなしにするかというとpostfixではパスフレーズなしの鍵しか使えないし、apacheで起動するたびにパスフレーズ聞かれて面倒だから。 ====RapidSSLの取得==== [[https://www.servertastic.com/|servertastic]] * まずメニューSSL->RapidSSLから * {{:server:servertastic1.jpg|}} * 英語だけど特に迷うようなところもないと思います。 * 途中でcsrを入れる画面があるのでそこで先ほど作ったnewreq.pemの中身を全部コピーして申し込む。 * 【Your RapidSSL order has been completed for xxx.xxx】ってタイトル?のメールの中に証明書が入ってる ====証明書の設置==== postfixではnewkey.pemとserver.crt、intermediate.crt \\ dovecotではnewkey.pemとserver.crt を使うので * newkey.pem #作ったやつ * server.crt #メールで送られてきた証明書 * intermediate.crt #メールで送られてきた証明書 の3つを用意します。 メールで送られてきた証明書といっても添付で送られて来るわけじゃなく \\ 一枚のメールの中に2つの証明書の中身が入ってる === server.crtの作成=== そのメールの Web Server CERTIFICATE の後にある -----BEGIN CERTIFICATE----- ... ... -----END CERTIFICATE----- が証明書(crt)で $ sudo vi /etc/pki/tls/certs/server.crt にコピー === intermediate.crtの作成=== INTERMEDIATE CA:の後にある -----BEGIN CERTIFICATE----- ... ... -----END CERTIFICATE----- が中間証明書で $ sudo vi /etc/pki/tls/certs/intermediate.crt にコピー どっちも-----END CERTIFICATE-----と-----END CERTIFICATE-----の部分も入れる。 ===newkey.pemの設置=== はじめに作ったnewkey.pemを移動。ついでにリネーム $ sudo cp /etc/pki/tls/misc/newkey.pem /etc/pki/tls/private/server.key ====postfix,dovecotでの設定==== 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