SSL証明書の有効期限切れ対応
うちの会社のメールサーバは、Ubuntu上のpostfix/dovecotという組み合わせで運用しています。
もちろん、セキュリティにも配慮し、TLS経由でのアクセスとしています。
約一年前にメールサーバを立ち上げ、スパムと戦いながら順調に運用してきました。
しかし、最近Outlookで接続すると、以下のような「接続しているサーバーは、確認できないセキュリティ証明書を使用しています。」というエラーが出るようになりました。
証明書の有効期限が切れている、と言われているのですが、クライアント側は、以下のように確認すると、有効期限は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 |
となっており、有効期間が切れていることがわかりました。
ということで、サーバ側の証明書を変更する手順です。
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