C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

C# でhttps接続できません。 /なち (18/10/11(Thu) 15:25) #88897
Re[1]: C# でhttps接続できません。 /774RR (18/10/11(Thu) 15:44) #88898
  └ Re[2]: C# でhttps接続できません。 /なち (18/10/11(Thu) 15:49) #88899


親記事 / ▼[ 88898 ]
■88897 / 親階層)  C# でhttps接続できません。
□投稿者/ なち (1回)-(2018/10/11(Thu) 15:25:33)

分類:[.NET 全般] 

お世話になります。

以下の件で、自分でいろいろ格闘いたしましたが、解決できません。
つきましては、皆様のお知恵をお貸しください。

■内容
以前、C#にて、YahooサイトのHTMLを取得していましたが、
久しぶりにHTML取得したところ、HTML取得ができなくなっていました。
このときのエラーメッセージとコードは以下のとおりです。

<エラーメッセージ>
「基礎になる接続が閉じられました: 送信時に、予期しないエラーが発生しました。」

<C#コード>
WebClient wc = new WebClient();

string url = "https://www.yahoo.co.jp";
Stream st = wc.OpenRead(url);
StreamReader sr = new StreamReader(st, Encoding.GetEncoding("utf-8"));
string html = sr.ReadToEnd();
sr.Close();
st.Close();

いろいろネットで調べたところ、以下が原因かも?というところまでは来ましたが、
解決できずに困っております。
@UserAgent設定
Aプロトコルが古い

上記についてやってみたことは以下です。(うまくいってません。)
@UserAgent設定
wc.Headers.Add("User-Agent", "Firefox/59.0");
というのを入れてみましたが、うまくいきません。

Aプロトコル
当方、WinXP+.net4.0のため、下記HPを参考にして、TSL1.2対応しようと試みましたが、
https://qiita.com/tanj/items/31a0fd6b188952886de5
実行時に、下記エラーが出てしまいます。
「要求されたセキュリティ プロトコルは、サポートされていません。」

なお、Yahooサイトは、セキュリティについて、現在、以下となっています。
現在 以前
TSL1.3 未対応 未対応
TSL1.2 対応   対応
TSL1.1   終了   対応
TSL1.0   終了   対応

Firefoxでは普通にアクセスができるので、WinXP+.net4.0 C#でも、
何か解決方法があるのではと考えておりますが、
私の力が及ばず解決できておりません。

よろしくお願いいたします。
[ □ Tree ] 返信 編集キー/

▲[ 88897 ] / ▼[ 88899 ]
■88898 / 1階層)  Re[1]: C# でhttps接続できません。
□投稿者/ 774RR (630回)-(2018/10/11(Thu) 15:44:56)
WinXP っすか?すると XP 側の仕様として TLS1.0 までしか対応していないので Yahoo 側が拒絶しているだけです。
(XP は SSL2.0 SSL3.0 TLS1.0 のみサポート)
FireFox や Chrome は XP の標準セキュリティ機構を使わず独自に TLS1.1 TLS1.2 を実装してるのでつながりますが、いつまでできるかは不明。
ということで自前で TLS1.2 サポートを書けばうまくいくはずなんだけど、収益が労力に見合わないと思う。

https://www.ikt-s.com/vista-xp-tls12/
Vista の IE9 ならまだなんとかなるようなことが書いてありますが XP の IE8 ではどうにもならなさそう。

[ 親 88897 / □ Tree ] 返信 編集キー/

▲[ 88898 ] / 返信無し
■88899 / 2階層)  Re[2]: C# でhttps接続できません。
□投稿者/ なち (3回)-(2018/10/11(Thu) 15:49:42)
No88898 (774RR さん) に返信
> WinXP っすか?すると XP 側の仕様として TLS1.0 までしか対応していないので Yahoo 側が拒絶しているだけです。
> (XP は SSL2.0 SSL3.0 TLS1.0 のみサポート)
> FireFox や Chrome は XP の標準セキュリティ機構を使わず独自に TLS1.1 TLS1.2 を実装してるのでつながりますが、いつまでできるかは不明。
> ということで自前で TLS1.2 サポートを書けばうまくいくはずなんだけど、収益が労力に見合わないと思う。
>
> https://www.ikt-s.com/vista-xp-tls12/
> Vista の IE9 ならまだなんとかなるようなことが書いてありますが XP の IE8 ではどうにもならなさそう。

774RR様
ご回答ありがとうございます。
なるほどそういう事情なのですね。勉強になります。

ありがとうございました。
今後ともよろしくお願いいたします。

[ 親 88897 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -