質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Q&A

解決済

2回答

3218閲覧

virtualminのdovecotでSSL証明書が自己署名となってしまう

kumakake

総合スコア42

Dovecot

Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

0グッド

0クリップ

投稿2019/01/04 05:51

Virtualminで仮想ドメイン環境を管理しています。
ドメインごとのSSL証明書はLet's Encryptを利用して取得しています。

下記を確認しています。
・Webはhttpsでアクセスできています。
Chromeのデベロッパーツールで、発行元: Let's Encrypt Authority X3であることを確認しています。

今回、Gmailで管理すべく、「アカウントとインポート」画面でメール送受信を管理しようとしています。
送信については「TLS を使用したポート 587 でのセキュリティで保護された接続」ができました。

しかし、受信についてポート995での接続時に "SSL error: Leaf certificate is self-signed"が発生し、接続ができません。
ポートを995、”メールの取得にセキュリティで保護された接続(SSL)を使用する。”にチェックをしています。

※SSL無し(ポート110)では接続ができています。

dovecot.confでは

local_name hoge.com {
ssl_cert = </home/hoge/ssl.cert
ssl_key = </home/hoge/ssl.key
}

と、ドメインごとに証明書の設定がされています。

DovecotをSSL経由で利用するためにはどのようにすればよろしいでしょうか?
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

メッセージが、「CA の証明書が見つからない」というものではなく、self-signed とのことですので、local_name hoge.com { } で設定したものではない、(/etc/dovecot/conf.d/10-ssl.conf などで設定されている)別の証明書が使われているのではないでしょうか。

メールクライアントから 995番ポートに POP3S で接続する際、local_name で設定した hoge.com で接続していますでしょうか?
(IPアドレスや他のホスト名ではダメです。)

投稿2019/01/07 07:07

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kumakake

2019/01/08 12:42

ありがとうございます! 確認してみます!
kumakake

2019/01/08 12:46

今、10-ssl.conを確認したところ、自己証明書が設定されていました。 コメントアウトしてしまえばいいのか。。。 やってみます。
kumakake

2019/01/08 13:04

やってみました。 10-ssl.confでの証明書設定をコメントにすると、下記のメッセージが表示されました。 mail.xxx.com への接続に問題が発生しました。 サーバーから返されたエラー: "SSL protocol error. Please try disabling SSL, or contact your other provider to verify the correct port settings." コメントを外すと mail.xxx.com への安全な SSL 接続を確立できません サーバーから返されたエラー: "SSL error: Leaf certificate is self-signed" となります。 これって、local_nameでヒットしなかったからここの証明書が使われたって感じなんでしょうか? ご指摘のホスト名は正しくセットしていますが、ログででも確認できるものなのでしょうか? よろしくお願いします。
TaichiYanagiya

2019/01/08 13:52

> これって、local_nameでヒットしなかったからここの証明書が使われたって感じなんでしょうか? はい。 正確には、10-ssl.conf の証明書で SSL 接続した後、クライアントから送られるホスト名が local_name に合致すれば SNI で切り替えます。 local_name の証明書が有効かどうか、サーバーのシェルから、"openssl s_client -connect 127.0.0.1:995 -servername hoge.com" で接続し、"Certificate chain" 箇所に表示される証明書を確認ください。 CN= などで、どの証明書が使われているかわかるはずです。
kumakake

2019/01/08 17:13

ありがとうございます! CN = Let's Encrypt Authority X3 と表示さます。
kumakake

2019/01/08 17:30

設定できました。 local_name hoge.jp {} これの hoge.j はメールサーバーのホスト名なんですね。 アプリの受信メールサーバーのホスト名の設定をmail.hoge.jpではなく、hoge.jpとしたら接続できました。
guest

0

ssl cert は、fullchain の方を指定する必要があります。

下記のように 各ドメインの Let's Encrypt の fullchain cert と privkey を直接指定したらできないでしょうか?

local_name example.com { ssl_cert = </etc/letsencrypt/live/example.com/fullchain.pem ssl_key = </etc/letsencrypt/live/example.com/privkey.pem }

投稿2019/01/04 06:04

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kumakake

2019/01/04 06:10

ありがとうございます! やってみます!
kumakake

2019/01/04 06:24

VirtualminでLet's Encryptを利用した場合、/home/管理者/直下に ssl.ca ssl.cert ssl.combined ssl.everything の4つのファイルが作成されていました。 ご指摘のfullchain の証明書と中間証明書を連結したファイルはssl.combinedが該当するので、ssl_certに設定し、dovecotを再起動しましたが、同様の自己証明書とのエラーが表示されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問