MonoでSSL接続しようとしたら怒られた
UserStreamに接続しようとしたら例外投げられた。
Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server.
無効な証明書ってあんたTwitterのせいにしてるんですか、と思いつつ調べると、どうやら原因はMono側らしい。
That's probably because you do not trust the site you are connecting to. Note that a default installation of Mono doesn't trust anyone!
Redirecting…
・・・ルート証明書がインストールされていないのかよ!
さてどうしたものかと読み進めると、mozrootsというツールがついていて、これでMozillaが使ってるルート証明書がダウンロードできるらしい。
オプションなしでヘルプ、--importでダウンロード&インストール。ただデフォルトが--ask(追加も削除も確認)らしく、面倒なので--sync(確認なしでMozillaと同期)をつけて実行。
$ mozroots --import --sync
できた。
cURLもそうだったけど、ライブラリに証明書が同梱できないのはなにかわけがありそうだなあ。