迷ってる@自己解決
Server Name Indication(SNI)を使って
一つのサーバー証明書でマルチドメイン化
するかどうか。。。
迷っています。。。いや、迷っていました。
初期のサーバー証明はIPアドレスに紐づけて証明書を
発行し、それに従って通信経路を確立していたため、
証明書1枚には1IPアドレスのうちの1ドメイン
(ホストネーム)にしか利用できませんでした。
最近の情勢です。
例えばLet’s Encryptでも1つのIPアドレスに
ぶら下がったVirtualHost環境で、ドメイン
・サブドメインごとに証明書が発行される
ようになりました。
ではなぜマルチ化が必要か。
WebサーバーだとVirtualHostをいくつでも列記して、
設定したServerNameやServerAliasごとの証明書を
発行してもらえば良いのですが、メールサーバー
であるPostfixには1つしか設定できない?
やり方を知らないだけかもしれませんが。。。
ま、送信のSASL認証は自ドメイン(ホスト名)
でなくても良いので、発行された証明書を
シェアすれば良いだけ話です。
ところが受信の場合はそぉは問屋が卸しませぬ。。
ユーザー名を変えるわけにはいかないからです。
無理くりシェアしようとすると警告が出て
怒られてしまいます。
これは証明書も複数ドメインに対応したものを
発行してもらうことが回避できます。
certbot certonly –webroot
のあとに
-w /home/oba-q/pubulic_htmi -d mail.oba-q.com -e admin@oba-q.com -w /home/ja8gyq/pubulic_html -d mail.5kw.net.net -e ja8gyq@5kw.net ・・・
のごとく
・ドキュメントルート
・メールアドレス
・ドメイン(ホストネーム)
を列記すればよいのです。
一番最初に書いたのがmail.oba-q.comであれば
/etc/letsencrypt/live/mail.oba-q.com/
に複数ドメインに対応したfullchain.pem
とprivkey.pemが保存されます。
これをDovecotに設定
vim /etc/dovecot/conf.d/10-ssl.conf
ssl_cert = </etc/letsencrypt/live/mail.oba-q.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.oba-q.com/privkey.pem
これで万事うまくいく!?
拙生のお試し環境ではうまくいきました。。。が、
これではMacのMailクライアントだけ受信できない
という記事を発見しちゃいました。
ダメじゃん。
結局ドメイン・サブドメインごとに発行してもらい
ssl_cert = </etc/letsencrypt/live/mail.oba-q.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.oba-q.com/privkey.pem
local_name 5kw.net {
ssl_cert = </etc/letsencrypt/live/mail.5kw.net/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.5kw.net/privkey.pem
}
・
・
・
こんな感じで列記すればよいらしい。
うーん、ドメイン・サブドメイン分かぁ。。。
Macのために面倒くさいとなどとブツブツ言いながら
嘆いていましたが、考えたらSNI構築の設定よりは
全然面倒くさくないぞ!と、これを書きながら
気づきました。www
それにまだSNIに対応していないブラウザも
あるらしいし、とりあえず送信は1証明書をシェアか、
お使いのプロバイダのSMTPサーバーを使ってもらい、
受信はそれぞれの証明書を列記、これで行きますか。
SPF・DMARC・DKIMといい、これといい、昔から比べると
メールサーバーの設定が何倍も面倒になってしまいました。
*拙生の拙い知識内で書いていますので、もっと
簡単なやり方が存在している可能性は大です。
*<は全角で書いていますが実際に
使う場合は半角に直します。
もも三昧
毎日こんなやり取りがあります。笑
連れ合いインスタグラム
拙生のインスタ ⇒ こちら
(要ログイン)