SSL 証明書の作成

メールサーバの証明書が切れてしまってまたイチからやり直しだったので備忘録。

証明書は安さ重視でservertasticRapidSSLをとります。
年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

reqコマンドのマニュアル

間違えてパスフレーズ入れちゃった場合

パスフレーズの削除

$ sudo openssl rsa -in newkey.pem -out newkey.pem

パスフレーズ入力してenter

#なんでパスフレーズなしにするかというとpostfixではパスフレーズなしの鍵しか使えないし、apacheで起動するたびにパスフレーズ聞かれて面倒だから。

RapidSSLの取得

servertastic

  • まずメニューSSL→RapidSSLから
  • 英語だけど特に迷うようなところもないと思います。
  • 途中で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
server/証明書.txt · 最終更新: 2013/08/08 15:13 by eiji