質問編集履歴

11

h

2019/11/10 00:27

投稿

firstlast
firstlast

スコア138

test CHANGED
@@ -1 +1 @@
1
- HTTPプロトコルを介して他のコンピューターのアプリケーションとデータを安全に交換したい。セルフホスト
1
+ HTTPプロトコルを介して他のコンピューターのアプリケーションとデータを安全に交換したい。セルフホスト
test CHANGED
File without changes

10

g

2019/11/10 00:27

投稿

firstlast
firstlast

スコア138

test CHANGED
@@ -1 +1 @@
1
- RESTFulなWCFサビスSSLで保護したい。エラーが発生してメッージのやり取りができない。
1
+ HTTPプロトコルを介して他のコンピュターのアプリケーションとデータ安全に交換したい。セルフホスト、
test CHANGED
@@ -1,24 +1,34 @@
1
- # 前提・目的
1
+ # 実現したいこと(目的
2
-
3
- - セルフホスト
2
+
4
-
5
- - コンピュータに証明書登録せずに、pfxファイルで行う
3
+ HTTPプロトルを介して他のコンピューター上のアプリケーションとデータ交換したい
4
+
6
-
5
+ 要件:
6
+
7
- - 不特定多数ではく、あらかじめ登録されたユーザーが利用する。
7
+ - 盗聴、改竄、りすまし対策が施されている。
8
-
8
+
9
- - セキュリティが考慮されてい(なりすまし・盗聴・改ざん等
9
+ - セルフホストである(IISは使用しい。
10
-
11
-
12
-
10
+
11
+
12
+
13
- # 知りこと
13
+ # 試したこと
14
+
14
-
15
+ - WCFを使用
16
+
17
+ - RESTFul方式(WebHttpBinding)を使用
18
+
19
+ - SSLを使用
20
+
21
+   但し、サーバー証明書をコンピューターにインポートする手順に未精通なため、サービスのアプリケーションが直接pfxファイルを読み込んで行う方式で実装している。
22
+
23
+
24
+
25
+ # 問題点
26
+
15
- エラー(後述)の原因と対策
27
+ エラー(後述)が発生して、データを交換できない。
16
-
17
-
18
-
19
- 最後に、証明書を発行するためのDOSコマンドを掲載しています。
28
+
20
-
29
+
30
+
21
- テラテイルの先輩方よろしくお願い致します。
31
+ よろしくお願い致します。
22
32
 
23
33
 
24
34
 

9

H

2019/11/10 00:26

投稿

firstlast
firstlast

スコア138

test CHANGED
File without changes
test CHANGED
@@ -1,50 +1,20 @@
1
1
  # 前提・目的
2
2
 
3
+ - セルフホスト
4
+
3
- ・WCFサビスフホスト形式、RESTFulサービス
5
+ - コンピュタに証明書を登録せずにpfxファイで行う。
4
-
6
+
5
- 不特定多数ではなく、あらかじめ登録されたユーザーが利用する。
7
+ - 不特定多数ではなく、あらかじめ登録されたユーザーが利用する。
6
-
8
+
7
- セキュリティが考慮されている。(なりすまし・盗聴・改ざん等)
9
+ - セキュリティが考慮されている。(なりすまし・盗聴・改ざん等)
8
10
 
9
11
 
10
12
 
11
13
  # 知りたいこと
12
14
 
13
- 1. エラー(後述)の原因と対策
15
+ エラー(後述)の原因と対策
14
-
15
- 2. ソースコードの内容が前提や目的に合致しているか。以下に思いつくままに危惧している点を列挙致します。
16
+
16
-
17
- - WebHttpBindingを使用すること
17
+
18
-
19
- - PFXファイル(個人情報交換ファイル・・・証明書と秘密鍵が格納されている)を使用すること
20
-
21
- 11/7追記
22
-
23
- - MakeCertコマンドの以下のスイッチを削除しました。
24
-
25
- ssスイッチ
26
-
27
- srスイッチ
28
-
29
- 理由:個人情報交換ファイルを使った方法では、コンピューターに登録する必要がないと考えたため。
30
-
31
- - 公開鍵をどうやってクライアント(サービス利用側)が指定するか、よくわからない。
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
- 以上が依頼内容です。
40
-
41
-
42
-
43
- 長文になり申し訳ございません。
44
-
45
- 最初に概要やイメージを、
46
-
47
- 続いて、ソースコードとエラー内容
48
18
 
49
19
  最後に、証明書を発行するためのDOSコマンドを掲載しています。
50
20
 

8

G

2019/11/08 17:44

投稿

firstlast
firstlast

スコア138

test CHANGED
@@ -1 +1 @@
1
- セキュリティで保護されたRESTFul形式のWCFサービスを試作るが、サービスアクセス時にエラーが発生してメッセージのやり取りができない。
1
+ RESTFulWCFサービスをSSLで保護エラーが発生してメッセージのやり取りができない。
test CHANGED
File without changes

7

F

2019/11/08 17:39

投稿

firstlast
firstlast

スコア138

test CHANGED
File without changes
test CHANGED
@@ -58,6 +58,8 @@
58
58
 
59
59
  ![イメージ説明](2e1f1235bf9ab63aa317480b96c9f924.png)
60
60
 
61
+ ![イメージ説明](f09dafb506730ea172ef2ce95321b091.png)
62
+
61
63
 
62
64
 
63
65
  ###サービス外観

6

e

2019/11/08 16:56

投稿

firstlast
firstlast

スコア138

test CHANGED
File without changes
test CHANGED
@@ -510,38 +510,38 @@
510
510
 
511
511
  ```
512
512
 
513
+ #試したこと1
514
+
515
+ ①パワーシェルで、以下のコマンドを実行し、証明書の捺印を取得
516
+
517
+ Get-PfxCertificate -FilePath ServerCert1.pfx
518
+
519
+
520
+
521
+ ②トランスポート層で X.509 証明書を使用して認証するクライアントをサポートするために
522
+
523
+ netsh http add sslcert ipport=0.0.0.0:5000 certhash=9512A6EA3042F7717EA02194097187207136E5FB appid={541eea84-c788-4d23-b6b2-f5210bcdf5c5} clientcertnegotiation=enable
524
+
525
+ を実行 ※certhashに①で取得した捺印を、appidには、Visual StudioのサービスプロジェクトのプロパティウィンドウにあるGUIDを設定。
526
+
527
+
528
+
529
+ ===>下記エラー発生
530
+
531
+ SSL 証明書を追加できませんでした。エラー: 1312
532
+
533
+ 指定されたログオン セッションは存在しません。そのセッションは既に終了している可能性があります。
534
+
535
+
536
+
513
537
  #試したこと2
514
538
 
515
- ①パワーシェルで、以下のコマンドを実行し、証明書の捺印を取得
516
-
517
- Get-PfxCertificate -FilePath ServerCert1.pfx
518
-
519
-
520
-
521
- ②トランスポート層で X.509 証明書を使用して認証するクライアントをサポートするために
522
-
523
- netsh http add sslcert ipport=0.0.0.0:5000 certhash=9512A6EA3042F7717EA02194097187207136E5FB appid={541eea84-c788-4d23-b6b2-f5210bcdf5c5} clientcertnegotiation=enable
524
-
525
- を実行 ※certhashに①で取得した捺印を、appidには、Visual StudioのサービスプロジェクトのプロパティウィンドウにあるGUIDを設定。
526
-
527
-
528
-
529
- ===>下記エラー発生
530
-
531
- SSL 証明書を追加できませんでした。エラー: 1312
532
-
533
- 指定されたログオ セッションは存在しません。そセッションは既に終了している可能性があります。
539
+ サービスとクライアトの各ソースコードからキュリティ関連のコードを除去した場合は、正常なメセージやり取りが実現できています。
534
540
 
535
541
 
536
542
 
537
543
  #試したこと3
538
544
 
539
- サービスとクライアントの各ソースコードからセキュリティ関連のコードを除去した場合は、正常なメッセージのやり取りが実現できています。
540
-
541
-
542
-
543
- #試したこと4
544
-
545
545
  X509Certificate2メソッドのパスワードの引数をわざと違うものに設定するとちゃんとエラーになります。
546
546
 
547
547
 

5

d

2019/11/08 15:55

投稿

firstlast
firstlast

スコア138

test CHANGED
File without changes
test CHANGED
@@ -510,7 +510,51 @@
510
510
 
511
511
  ```
512
512
 
513
-
513
+ #試したこと2
514
+
515
+ ①パワーシェルで、以下のコマンドを実行し、証明書の捺印を取得
516
+
517
+ Get-PfxCertificate -FilePath ServerCert1.pfx
518
+
519
+
520
+
521
+ ②トランスポート層で X.509 証明書を使用して認証するクライアントをサポートするために
522
+
523
+ netsh http add sslcert ipport=0.0.0.0:5000 certhash=9512A6EA3042F7717EA02194097187207136E5FB appid={541eea84-c788-4d23-b6b2-f5210bcdf5c5} clientcertnegotiation=enable
524
+
525
+ を実行 ※certhashに①で取得した捺印を、appidには、Visual StudioのサービスプロジェクトのプロパティウィンドウにあるGUIDを設定。
526
+
527
+
528
+
529
+ ===>下記エラー発生
530
+
531
+ SSL 証明書を追加できませんでした。エラー: 1312
532
+
533
+ 指定されたログオン セッションは存在しません。そのセッションは既に終了している可能性があります。
534
+
535
+
536
+
537
+ #試したこと3
538
+
539
+ サービスとクライアントの各ソースコードからセキュリティ関連のコードを除去した場合は、正常なメッセージのやり取りが実現できています。
540
+
541
+
542
+
543
+ #試したこと4
544
+
545
+ X509Certificate2メソッドのパスワードの引数をわざと違うものに設定するとちゃんとエラーになります。
546
+
547
+
548
+
549
+ #補足1
550
+
551
+ IISでは.pfxファイルをコンピュータにインポートするが、今回の試みでは、X509Certificate2メソッドの引数にファイルを指定している。
552
+
553
+
554
+
555
+ #補足2
556
+
557
+ HTTPS通信は、共通鍵暗号方式と公開鍵暗号方式のハイブリッドで成り立っているらしい。
514
558
 
515
559
 
516
560
 

4

d

2019/11/08 15:53

投稿

firstlast
firstlast

スコア138

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  1. エラー(後述)の原因と対策
14
14
 
15
- 2. ソースコードの内容が前提や目的に合致しているか。
15
+ 2. ソースコードの内容が前提や目的に合致しているか。以下に思いつくままに危惧している点を列挙致します。
16
16
 
17
17
  - WebHttpBindingを使用すること
18
18
 

3

c

2019/11/07 00:00

投稿

firstlast
firstlast

スコア138

test CHANGED
File without changes
test CHANGED
@@ -14,9 +14,25 @@
14
14
 
15
15
  2. ソースコードの内容が前提や目的に合致しているか。
16
16
 
17
- WebHttpBindingを使用すること
17
+ - WebHttpBindingを使用すること
18
-
18
+
19
- PFXファイル(個人情報交換ファイル・・・証明書と秘密鍵が格納されている)を使用すること
19
+ - PFXファイル(個人情報交換ファイル・・・証明書と秘密鍵が格納されている)を使用すること
20
+
21
+ 11/7追記
22
+
23
+ - MakeCertコマンドの以下のスイッチを削除しました。
24
+
25
+ ssスイッチ
26
+
27
+ srスイッチ
28
+
29
+ 理由:個人情報交換ファイルを使った方法では、コンピューターに登録する必要がないと考えたため。
30
+
31
+ - 公開鍵をどうやってクライアント(サービス利用側)が指定するか、よくわからない。
32
+
33
+
34
+
35
+
20
36
 
21
37
 
22
38
 

2

b

2019/11/06 23:58

投稿

firstlast
firstlast

スコア138

test CHANGED
File without changes
test CHANGED
@@ -500,8 +500,8 @@
500
500
 
501
501
  ### 環境
502
502
 
503
- Microsoft Windows 10 Pro (Version 1809)
503
+ Microsoft Windows 10 Pro (Version 1903)
504
-
504
+
505
- Microsoft Visual Studio Community 2017(Version 15.9.4)
505
+ Microsoft Visual Studio Community 2019
506
-
506
+
507
- Microsoft .NET Framework(Version 4.7.03190)
507
+ Microsoft .NET Framework 4.7.2

1

a

2019/11/06 13:59

投稿

firstlast
firstlast

スコア138

test CHANGED
File without changes
test CHANGED
@@ -468,7 +468,7 @@
468
468
 
469
469
  ## エラー内容
470
470
 
471
- https://126.108.62.68:5000/TestService/PostMsg に対する HTTP 要求の発行中にエラーが発生しました。この原因としては、HTTPS ケースの HTTP.SYS でサーバー証明書が正しく構成されていないこと、またはクライアントとサーバーの間でセキュリティ バインドが整合していないことが考えられます。
471
+ https://123.123.123.123:5000/TestService/PostMsg に対する HTTP 要求の発行中にエラーが発生しました。この原因としては、HTTPS ケースの HTTP.SYS でサーバー証明書が正しく構成されていないこと、またはクライアントとサーバーの間でセキュリティ バインドが整合していないことが考えられます。
472
472
 
473
473
 
474
474