Mono.Security.Protocol.Tls.TlsExceptionを回避する

提供: MonoBook
2015年12月3日 (木) 02:02時点におけるimported>Administratorによる版 (ページの作成:「FreeBSD上のMonoCoreTweetを使用したところ以下のようなエラーが出た。 Mono.Security.Protocol.Tls.TlsException: Invalid certificate...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

FreeBSD上のMonoCoreTweetを使用したところ以下のようなエラーが出た。

Mono.Security.Protocol.Tls.TlsException: Invalid certificate received from server. Error code: 0xffffffff80092012
  at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates) [0x00000] in :0 
  at Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 () [0x00000] in :0 
  at Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process () [0x00000] in :0 
  at (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process ()
  at Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in :0 
  at Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult) [0x00000] in :0 
 

CoreTweet内部で使っているHttpWebRequestがSSLをうまく処理できていないようだ。 mozrootsというツールを使えば治るなどと海外フォーラムでは書かれていたが治る気配はなかった。

解決策1[編集 | ソースを編集]

HttpWebRequestを使う前に以下のコードを挿入してSSL証明書の整合性チェックを上書きし、常にtrueを返すようにして強行突破する。 強行突破とは何事かという感じだが知らんがな。

ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, errors) => true;

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]