FujiSSLの証明書を更新して嵌った。来年の備忘録を兼ねて。。。。
家で使っているSSL証明書の有効期限が来月で切れてしまうので、更新作業を行った。WEBサーバーのSSLは簡単に更新できたけど、メールの更新の仕方を忘れていて、受信できなくなった。。。。こんだけ嵌ると忘れないと思うけど、備忘録を兼ねて記載しておく。
Fujisslは、CSRはパスフーズ付きで、申請する。認証が終わると、中間証明書と証明書が別々に送られてくる。
Apacheは簡単で、これらのファイルを元に更新すればよい。
CSRの作成でPrivate KEYが入っているので、httpdを再起動するとプライベートキーのパスワードを聞かれるようになるので、
$ nano /etc/ssl/certs/pass_ssl.sh
#!/bin/sh
echo 'passoword'
rootのみ読み書きにする
$ chmod 500 /etc/ssl/certs/pass_ssl.sh
Apacheの設定ファイルを変更
/etc/httpd/conf.d/ssl.conf
# SSLPassPhraseDialog builtin # ← コメントアウト
SSLPassPhraseDialog exec:/etc/ssl/certs/pass_ssl.sh
これで、httpdを再起動してもパスフレーズが聞かれなくなる。
つぎの問題は、メールにエラーが出るようなった。メールも外出先で見たいから、SSLでインターネット経由で自宅サーバーに乗り込んで見れるようにしているのでSSL暗号化がかかっているのだ。
最初はSSL通信しているGOOGLE経由とかそういうサイトだけど、設定しているうちに、メールクライアントから全く接続できなくなった。
ここまでやったのは、
PEMフレーズ(PEM phrase)で暗号化解除
もともと作成したパスフレーズ付きの秘密鍵から、以下のopensslコマンドを実行して、パスフレーズを削除する。
# openssl rsa -in misago.csr -out misago.pem
PEMフレーズ形式で作成する。
FujiSSLはバラバラ状態で証明書が送られてくるので、PEM形式でPOSTFIXが理解できるようにする。下に示す、証明書と中間証明書と、秘密鍵と証明書、中間証明書の2種類を作成する。
SSL証明書と中間証明書を含む場合
- テキストエディタで以下のファイルを開き、内容をコピーして .pemファイルに貼り付ける
- 発行されたサーバー証明書ファイル
- 中間証明書ファイル
.pem ファイルには、上記の順番で貼り付ける。
- 作成された .pem ファイルが以下のような内容になっていることを確認する—–BEGIN CERTIFICATE—–
発行されたサーバー証明書ファイルの記述内容
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
中間証明書ファイルの記述内容
—–END CERTIFICATE—– - 出来上がった .pem ファイルに fullchain.crtとして保存する。
証明書チェーンの全てと秘密鍵を含む場合
- テキストエディターで以下のファイルを開き、その内容をコピーし .pem ファイルに貼り付ける。
- 秘密鍵 (PASSフーズを抜いたもの)
- 発行されたサーバー証明書ファイル
- 中間証明書ファイル
- root 証明書ファイル
.pem ファイルには、上記の順番で貼り付ける。
- 作成された .pem ファイルが以下のような内容になっていることを確認する。—–BEGIN RSA PRIVATE KEY—–
秘密鍵の記述内容
—–END RSA PRIVATE KEY—–
—–BEGIN CERTIFICATE—–
発行されたサーバー証明書ファイルの記述内容
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
中間証明書ファイルの記述内容
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
root 証明書ファイルの記述内容
—–END CERTIFICATE—– - 出来上がった .pem ファイルに misago.pem のような名前を付けて保存する。これは、ROOT権限でしか読めないようにする。
SSLサーバ証明書をpostfixにインストールする
- /etc/postfix/main.cf の設定を見直しする。smtpd_tls_cert_file = /etc/postfix/fullchain.crt
smtpd_tls_key_file = /etc/postfix/misago.pem
ここまでやったら、メールクライアントから接続できなくなった。仕方ないのでSYSLOGをのぞいてみると、
Jun 27 10:48:51 misago dovecot: pop3-login: Fatal: Can’t load private ssl_key: Key is for a different cert than ssl_cert
Jun 27 10:48:51 misago dovecot: master: Error: service(pop3-login): command startup failed, throttling
どうやら、受信側dovecotにも設定の更新が必要なことが分かった。SSL/TLS 利用設定は dovecot/conf.d/10-ssl.conf で行う。
デフォルトのパスは/etc/dovecot/conf.d/10-ssl.confです。
- 基本設定
#nano /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = /etc/postfix/fullchain.crt
ssl_key = /etc/postfix/misago.pem
ここまでやって、問題なくメールククライントから、メールが読めるようになった。
ちなみにクライアント側の利用ポートはTLSでPOPサーバーに接続(pop3s)する場合、995番ポートを使い、Smtpは465番ポートを使う。
久しぶりにやるのでやり方を完全に忘れていた。メールが動かなくなったのはちょっと焦ったねえ。でも、いままでは、有効期限が2年までだっただけど、今回から13か月になったので、ちょっと面倒だよねえ。
1件の返信
[…] FujiSSLの証明書を更新して嵌った。来年の備忘録を兼ねて。。。。 | misagoのページ […]