質問編集履歴
11
h
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
HTTPプロトコルを介して他のコンピューターのアプリケーションとデータを安全に交換したい。セルフホスト
|
1
|
+
HTTPプロトコルを介して他のコンピューターのアプリケーションとデータを安全に交換したい。(セルフホスト)
|
test
CHANGED
File without changes
|
10
g
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
HTTPプロトコルを介して他のコンピューターのアプリケーションとデータを安全に交換したい。セルフホスト、
|
test
CHANGED
@@ -1,24 +1,34 @@
|
|
1
|
-
#
|
1
|
+
# 実現したいこと(目的)
|
2
|
-
|
3
|
-
|
2
|
+
|
4
|
-
|
5
|
-
|
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
|
-
|
28
|
+
|
20
|
-
|
29
|
+
|
30
|
+
|
21
|
-
|
31
|
+
よろしくお願い致します。
|
22
32
|
|
23
33
|
|
24
34
|
|
9
H
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,50 +1,20 @@
|
|
1
1
|
# 前提・目的
|
2
2
|
|
3
|
+
- セルフホスト
|
4
|
+
|
3
|
-
|
5
|
+
- コンピュータに証明書を登録せずに、pfxファイルで行う。
|
4
|
-
|
6
|
+
|
5
|
-
|
7
|
+
- 不特定多数ではなく、あらかじめ登録されたユーザーが利用する。
|
6
|
-
|
8
|
+
|
7
|
-
|
9
|
+
- セキュリティが考慮されている。(なりすまし・盗聴・改ざん等)
|
8
10
|
|
9
11
|
|
10
12
|
|
11
13
|
# 知りたいこと
|
12
14
|
|
13
|
-
|
15
|
+
エラー(後述)の原因と対策
|
14
|
-
|
15
|
-
|
16
|
+
|
16
|
-
|
17
|
-
|
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
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
RESTFulなWCFサービスをSSLで保護したい。エラーが発生してメッセージのやり取りができない。
|
test
CHANGED
File without changes
|
7
F
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
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
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
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
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
test
CHANGED
File without changes
|
test
CHANGED
@@ -500,8 +500,8 @@
|
|
500
500
|
|
501
501
|
### 環境
|
502
502
|
|
503
|
-
Microsoft Windows 10 Pro (Version 1
|
503
|
+
Microsoft Windows 10 Pro (Version 1903)
|
504
|
-
|
504
|
+
|
505
|
-
Microsoft Visual Studio Community 201
|
505
|
+
Microsoft Visual Studio Community 2019
|
506
|
-
|
506
|
+
|
507
|
-
Microsoft .NET Framework
|
507
|
+
Microsoft .NET Framework 4.7.2
|
1
a
test
CHANGED
File without changes
|
test
CHANGED
@@ -468,7 +468,7 @@
|
|
468
468
|
|
469
469
|
## エラー内容
|
470
470
|
|
471
|
-
https://12
|
471
|
+
https://123.123.123.123:5000/TestService/PostMsg に対する HTTP 要求の発行中にエラーが発生しました。この原因としては、HTTPS ケースの HTTP.SYS でサーバー証明書が正しく構成されていないこと、またはクライアントとサーバーの間でセキュリティ バインドが整合していないことが考えられます。
|
472
472
|
|
473
473
|
|
474
474
|
|