• R/O
  • HTTP
  • SSH
  • HTTPS

AppliStation: コミット

AppliStation


コミットメタ情報

リビジョン2cb1d17dbcbc2a8da66806a0a8a9be05deb76caa (tree)
日時2017-10-09 23:41:20
作者ttp <ttp@user...>
コミッターttp

ログメッセージ

na-get-lib,"セキュリティプロトコル設定の確認"を追加。SSLv3を無効化し、使用可能ならばTLSv1.1とTLSv1.2を有効にする

変更サマリ

差分

--- /dev/null
+++ b/na-get-lib/NaGet.SubCommands.SubTask/SecurityProtocolConfigSubTask.cs
@@ -0,0 +1,41 @@
1+using System;
2+using System.Net;
3+using NaGet.Tasks;
4+
5+namespace NaGet.SubCommands.SubTask
6+{
7+ public class SecurityProtocolConfigSubTask : NaGetSubTask
8+ {
9+ public SecurityProtocolConfigSubTask()
10+ {
11+ }
12+
13+ public override void Run()
14+ {
15+ NotifyStarted();
16+ RaiseTaskSetEvent(TaskEventType.STARTED, "セキュリティプロトコル設定の確認", 0);
17+
18+ if ((ServicePointManager.SecurityProtocol & SecurityProtocolType.Ssl3) != 0) {
19+ ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3;
20+ RaiseTaskSetEvent(TaskEventType.PING, string.Empty, 33);
21+ }
22+
23+ try {
24+ ServicePointManager.SecurityProtocol |= (SecurityProtocolType)768; // SecurityProtocolType.Tls11
25+ RaiseTaskSetEvent(TaskEventType.PING, string.Empty, 66);
26+ } catch (NotSupportedException) {
27+ RaiseTaskSetEvent(TaskEventType.WARNING, "TLSv1.1は有効ではありません", 66);
28+ }
29+
30+ try {
31+ ServicePointManager.SecurityProtocol |= (SecurityProtocolType)3072; // SecurityProtocolType.Tls12
32+ RaiseTaskSetEvent(TaskEventType.PING, string.Empty, 99);
33+ } catch (NotSupportedException) {
34+ RaiseTaskSetEvent(TaskEventType.WARNING, "TLSv1.2は有効ではありません", 99);
35+ }
36+
37+ RaiseTaskSetEvent(TaskEventType.COMPLETED, "セキュリティプロトコル設定の確認", 100);
38+ NotifyCompleted();
39+ }
40+ }
41+}
--- a/na-get-lib/NaGet.SubCommands/NaGetDownloadToCache2.cs
+++ b/na-get-lib/NaGet.SubCommands/NaGetDownloadToCache2.cs
@@ -41,6 +41,8 @@ namespace NaGet.SubCommands
4141
4242 // taskセットの初期化
4343 initSubTask();
44+ registSubTask("セキュリティプロトコル設定の確認",
45+ new SecurityProtocolConfigSubTask());
4446 foreach (Installation inst in installations) {
4547 DownloadSubTask dlSTask = new DownloadSubTask(inst.InstallerURL, inst.InstallerFile);
4648 VirusScanSubTask scanSTask = new VirusScanSubTask(scanner, inst.InstallerFile, inst.InstallerURL);
--- a/na-get-lib/NaGet.SubCommands/NaGetInstall2.cs
+++ b/na-get-lib/NaGet.SubCommands/NaGetInstall2.cs
@@ -49,6 +49,8 @@ namespace NaGet.SubCommands
4949 {
5050 // taskセットの初期化
5151 initSubTask();
52+ registSubTask("セキュリティプロトコル設定の確認",
53+ new SecurityProtocolConfigSubTask());
5254 foreach (Installation inst in installations) {
5355 VirusScanSubTask scanSTask = new VirusScanSubTask(scanner, inst.InstallerFile, inst.InstallerURL);
5456
--- a/na-get-lib/NaGet.SubCommands/NaGetUpdate2.cs
+++ b/na-get-lib/NaGet.SubCommands/NaGetUpdate2.cs
@@ -40,6 +40,8 @@ namespace NaGet.SubCommands
4040
4141 // taskセットの初期化
4242 initSubTask();
43+ registSubTask("セキュリティプロトコル設定の確認",
44+ new SecurityProtocolConfigSubTask());
4345 if (this.downloadPackageLists) {
4446 // repos.list.xmlがあるとき、そこからよみとる。
4547 repoList = NaGet.Utils.GetDeserializedObject<RepositoriesList>(NaGet.Env.RepositoriesListFile);
--- a/na-get-lib/na-get-lib.csproj
+++ b/na-get-lib/na-get-lib.csproj
@@ -77,6 +77,7 @@
7777 <Compile Include="NaGet.SubCommands.SubTask\DownloadSubTask.cs" />
7878 <Compile Include="NaGet.SubCommands.SubTask\LocalUpdateSubTask.cs" />
7979 <Compile Include="NaGet.SubCommands.SubTask\NaGetSubTask.cs" />
80+ <Compile Include="NaGet.SubCommands.SubTask\SecurityProtocolConfigSubTask.cs" />
8081 <Compile Include="NaGet.SubCommands.SubTask\VerifyInstallerFileSubTask.cs" />
8182 <Compile Include="NaGet.SubCommands.SubTask\VirusScanSubTask.cs" />
8283 <Compile Include="NaGet.SubCommands\NaGetDownloadToCache2.cs" />
旧リポジトリブラウザで表示