質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

3300閲覧

TLS 1.1 および TLS 1.2 を有効化したい

mattsun0829

総合スコア8

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2023/08/30 05:11

編集2023/08/30 05:14

実現したいこと

VB.NETでPOSTでTLS 1.1 および TLS 1.2 を有効化したい

前提

VB.NETでPOSTでデータを送信したいと以前質問をさせて頂いた際に、.NETのバージョンが3.5などと古く、TLS1.2以上で通信していないのが原因ではないかとご回答を頂きました。
そのため、TLS1.1およびTLS1.2を有効にしたいのですが、できません。

発生している問題・エラーメッセージ

System.Net.WebException:基礎になる接続が閉じられました: 送信時に、予期しないエラーが発生しました。 System.IO.IOException:トランスポートストリームから予期しないEOFまたは0バイトを受信しました。

該当のソースコード

Dim url As String = "https://××××.co.jp/○○○_△△△" Dim wc As New System.Net.WebClient 'NameValueCollectionの作成 Dim ps As New System.Collections.Specialized.NameValueCollection '送信するデータ(フィールド名と値の組み合わせ)を追加 ps.Add("key", "123") ps.Add("id", "B123456781") '※※※※※※ここにTLS1.2の候補が出てきません※※※※※※ ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol Or SecurityProtocolType.Tls 'データを送信し、また受信する Dim resData As Byte() = wc.UploadValues(url, ps) wc.Dispose() '受信したデータを表示する Dim resText As String = System.Text.Encoding.UTF8.GetString(resData) Console.WriteLine(resText)

試したこと

色々と調べた結果、ウェブブラウザの設定でTLS1.1やTLS1.2にチェックを入れたり、レジストリにTLS1.1やTLS1.2関連の情報を追加しました。

補足情報(FW/ツールのバージョンなど)

開発環境
Windows7
Microsoft Visual Studio 2008

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2023/08/30 05:26

前回の質問へのリンクも本文に追記すると回答得られやすくなると思います。 なお、前回の回答で示したリンク先に記載あるようにブラウザの設定など変更しても解決(影響)せず .NET Framework 4.5 以上にバージョンを上げる必要があると思います。 質問内容としては「3.5のままでTLS 1.1 および TLS 1.2を利用したい」ということでしょうか?
mattsun0829

2023/08/30 05:31

前回に引き続き、ご回答を頂きましてありがとうございます。 まだまだ使い方がわからず、ご迷惑をお掛けし申し訳ございません。 また、いつもご丁寧にご指摘頂き、ありがとうございます。 現在使用している開発環境を変更するのが難しく、3.5のままでTLS1.1およびTLS1.2が利用できるようにしたいです。
mattsun0829

2023/08/30 05:48

いつもご丁寧にありがとうございます。 熟読させて頂き、今後は気をつけるように致します。
KOZ6.0

2023/08/30 06:04 編集

「SecurityProtocolType 列挙型」 https://learn.microsoft.com/ja-jp/dotnet/api/system.net.securityprotocoltype?view=net-7.0 定数である Tls11 = 768, Tls12 = 3072 をキャストすれば良いのでは(試してません) Const Tls11 As SecurityProtocolType = DirectCast(&H300, SecurityProtocolType) '768 Const Tls12 As SecurityProtocolType = DirectCast(&HC00, SecurityProtocolType) '3072 ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol Or Tls11 Or Tls12
mattsun0829

2023/08/30 06:07

KOZ6.0様、ご回答ありがとうございました。 ご指示通りに書き直したところ、問題なく通りました。 ありがとうございました。
mattsun0829

2023/08/30 06:33

KOZ6.0様、先ほどはありがとうございました。 ベストアンサーにさせて頂きたいのですが、こちらですとできないようです。 どのようにさせて頂けばよろしいでしょうか。
KOZ6.0

2023/08/30 07:50

どのように修正したかを回答として書いて、自己解決としていただければ、と思います。
mattsun0829

2023/08/31 01:06

KOZ6.0様、ご回答ありがとうございました。 KOZ6.0様よりサンプルを記載して頂きましたが、 そのままご使用できる内容でしたので、そのままご使用させて頂きました。 それを自己解決とするのは個人的に納得できず、また本当に助かりましたので、 是非ベストアンサーをと思いました。
KOZ6.0

2023/08/31 02:06

では回答に転記します。
guest

回答2

0

.NET Framework で TLS 1.1 および TLS 1.2 を有効化する方法 - まとめ -に方法がまとめられているので参照ください。

おおまかに、実行環境のOSに以下の操作を行う必要があるようです。

  • (必要であれば)TLS1.1/1.2自体が利用できるように更新プログラムを適用する。
  • .NET3.5でTLS1.1/1.2が利用できるように更新プログラムを適用する。
  • .NET3.5でTLS1.1/1.2を既定で利用できるようにレジストリを修正する。

投稿2023/08/30 05:42

can110

総合スコア38352

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mattsun0829

2023/08/30 06:10

can110様、ありがとうございました。 ご回答頂きました内容を改めて確認し、設定してみました。 引き続き、動作の確認をしたいと思います。
guest

0

ベストアンサー

「SecurityProtocolType 列挙型」
https://learn.microsoft.com/ja-jp/dotnet/api/system.net.securityprotocoltype?view=net-7.0
定数である Tls11 = 768, Tls12 = 3072 をキャストすれば良いのでは?(試してません)

vb

1Const Tls11 As SecurityProtocolType = DirectCast(&H300, SecurityProtocolType) '768 2Const Tls12 As SecurityProtocolType = DirectCast(&HC00, SecurityProtocolType) '3072 3ServicePointManager.SecurityProtocol = ServicePointManager.SecurityProtocol Or Tls11 Or Tls12

投稿2023/08/31 02:06

KOZ6.0

総合スコア2721

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mattsun0829

2023/08/31 03:44

KOZ6.0様、ご無理を言って大変申し訳ございませんでした。 この度は本当に助かりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問