在網路上搜尋這個問題,所有的解都是說只要加入下列程式就能解決:
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
但我的程式裡早有這行,所以不是這個問題。
繼續找的結果是,因為我寫了一行程式:
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;
把這行改成
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls;
或是直接把那行註解掉即可
為什麼這樣改就會好?
我查了一下發現是因為SSL3有缺陷,已經要被各大網站棄用啦!
以下節錄:
「2014年10月,Google發布在SSL 3.0中發現設計缺陷,建議禁用此一協議。Google在自己公司相關產品中陸續禁止回溯相容,強制使用TLS協議。計劃於11月25日發布的Firefox 34中,Mozilla 將徹底禁掉 SSL 3.0。」