アーカイブ

Archive for 2010年5月

SSL証明書の有効期限切れ対応

うちの会社のメールサーバは、Ubuntu上のpostfix/dovecotという組み合わせで運用しています。

もちろん、セキュリティにも配慮し、TLS経由でのアクセスとしています。

約一年前にメールサーバを立ち上げ、スパムと戦いながら順調に運用してきました。

しかし、最近Outlookで接続すると、以下のような「接続しているサーバーは、確認できないセキュリティ証明書を使用しています。」というエラーが出るようになりました。

image

 

証明書の有効期限が切れている、と言われているのですが、クライアント側は、以下のように確認すると、有効期限は2019年になっていました。

  ■確認方法■
   インターネットエクスプローラ → [ツール] → [インターネットオプション] → [コンテンツ]タブ → [証明書]ボタン をクリック
   [信頼されたルート証明機関] で、発行元が、nevision.co.jpのものを参照。

 

サーバ側は、以下のコマンドで確認してみました。

  ■確認方法■
   openssl x509 –inform pem –in [ファイル名] –text
   [ファイル名]は、/etc/dovecot/dovecot.conf に設定されているファイル名。
   ssl_cert_file = xxx.pem
   ssl_key_file = xxx.pem    あたりの設定からファイル名を特定します。

上記コマンドを叩いてみると、

Validity
            Not Before: May 14 14:43:04 2009 GMT
            Not After : May 14 14:43:04 2010 GMT

 

となっており、有効期間が切れていることがわかりました。

ということで、サーバ側の証明書を変更する手順です。

1./etc/ssl/CAへ移動

  cd /etc/ssl/CA

2.証明書を、有効期間10年で作成

  sudo openssl req –new –x509 –days 3650 –key private/cakey.pem –out cacert_new.pem

  (注)既存のファイルを残しておきたかったので、ファイル名をcacert_new.pemとしました。
    元のファイル名は、cacert.pemでした。

3.サーバ証明書保存ディレクトリのopenssl.cnfを編集

  cd /etc/ssl/Server
  sudo vi /etc/ssl/Server/openssl.cnf

  certificate     = $dir/cacert.pem  # The CA certificate
  の行を、以下のように変更する。
  certificate     = $dir/cacert_2010.pem  # The CA certificate

4.サーバ証明書にCAで署名

  sudo openssl ca –config openssl.cnf –policy policy_anything –out ./cert-ca_new.pem –infiles request.pem

  すると、カレントディレクトリに、cert-ca_new.pemというファイルが作成されます。

5.メールサーバ用の証明書を作成

  sudo openssl x509 –in cert-ca_new.pem –out cert_new.pem

6.MUA用の証明書を作成

  sudo cat private.pem cert_new.pem > mail_new.pem

7.dovecot設定ファイルの変更

  sudo vi /etc/dovecot/dovecot.conf

  ssl_cert_file = /etc/ssl/Server/cert.pem
  ssl_key_file = /etc/ssl/Server/mail.pem
  上記2行をコメントアウト

  ssl_cert_file = /etc/ssl/Server/cert_new.pem
  ssl_key_file = /etc/ssl/Server/mail_new.pem
  上記2行を追加

8.postfix設定ファイルの変更

  sudo vi /etc/postfix/main.cf

  smtpd_tls_CAfile = /etc/ssl/CA/cacert.pem
  smtpd_tls_cert_file=/etc/ssl/Server/cert.pem
  smtpd_tls_key_file=/etc/ssl/Server/mail.pem
  上記3行をコメントアウト

  smtpd_tls_CAfile = /etc/ssl/CA/cacert_new.pem
  smtpd_tls_cert_file=/etc/ssl/Server/cert_new.pem
  smtpd_tls_key_file=/etc/ssl/Server/mail_new.pem
  上記3行を追加

9.dovecotとpostfixの再起動

  sudo /etc/init.d/dovecot restart
  sudo /etc/init.d/postfix restart

 

これでエラーが出ずに、メールの送受信ができるようになりました。

ちなみに、今回の作業では、以下のサイトを参考にさせていただきました。

http://www.kazutoyo.com/ubuntu/

いろいろ参考になりますので、是非どうぞ。

 

あと、メールサーバ側の環境も書いておきます。

shimizu@hostname:/tmp$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 8.10
Release:        8.10
Codename:       intrepid
shimizu@hostname:/tmp$ dpkg -l |grep dovecot
ii  dovecot-common                    1:1.1.4-0ubuntu1.2             secure mail server that supports mbox and ma
ii  dovecot-imapd                     1:1.1.4-0ubuntu1.2             secure IMAP server that supports mbox and ma
ii  dovecot-pop3d                     1:1.1.4-0ubuntu1.2             secure POP3 server that supports mbox and ma
shimizu@hostname:/tmp$ dpkg -l |grep postfix
ii  postfix                           2.5.5-1                        High-performance mail transport agent
ii  postfix-mysql                     2.5.5-1                        MySQL map support for Postfix
ii  postfixadmin                      2.3rc4                         Virtual mail hosting interface for Postfix

カテゴリー:Server設定