かってきままな日々
2020-02-05 (We) [長年日記]
_ TLS と CNAME
メールサーバにメールが溜まっていくよな、って。 そのメール、自動で POP3 で取得して、バックアップ取りたいな、と。
Ruby で
require 'net/pop'
してコードを書き始めたんだけど、SSL 証明書が確認できないみたい。
仕方ないなー、OpenSSL 使って自前でやるか、と思って改めて書いてみたんだけど、 やっぱり TLS で失敗する。
openssl s_client
を使って接続してみて、様子を見てみると…
私は pop.*.conoha.io
に接続しているのに、証明書は *.tyo1.conoha.io
。
DNS CNAME でそうなってるらしい。
CNAME がそうなってれば、証明書 OK としていいんだっけ?
その点を考えたことなかったわ。
でも、たとえ DNS に毒が入っても証明書で判る仕組みのはずで、 CNAME が同じものだと言ってるからって、それでいいはずがない。 証明書が攻撃者が用意した正規のもので、CNAME が毒である、って可能性がある。
いちおう証明書の内容を確認したけど、SAN に書いてあるわけでもない。
さて、ぐぐってみよう。
https://stackoverflow.com/questions/37304789/using-tls-for-a-cname-redirect
↑見つけた。少なくともダメらしい。記事がちょっと古いけど。
pop3s や imaps の場合はどうなんだろうなぁ。
Mew から stunnel 経由で接続できてるんだよね… スマホアプリの Spark からも接続できてるし。 つまり、これら的には CNAME が言ってればいい、ってことか。
Ruby はダメ、というか、「post_connection_check
に何を渡すか」次第ではありそう。