質問編集履歴
2
文章を分かりやすい内容に修正。表の形式を修正。(不要な情報を削除。カラムの追加・変更)
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
### 1.前提・実現したいこと
|
|
2
|
-
クライアントから指定される暗号スイートが、以下パターンのいずれかの場合においても、Tomcatと通信を行えるようにしたいです。
|
|
2
|
+
クライアントから指定される暗号スイートが、以下パターンのいずれかの場合においても、Tomcat と通信を行えるようにしたいです。
|
|
3
3
|
0. TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 の両方
|
|
4
4
|
0. TLS_RSA_WITH_AES_128_CBC_SHA256 のみ
|
|
5
5
|
0. TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 のみ
|
|
@@ -7,22 +7,22 @@
|
|
|
7
7
|
現状、1.および3.は通信できていますが、2.の通信ができていません。
|
|
8
8
|
※以下、TLS_RSA_WITH_AES_128_CBC_SHA256 を RSA 、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 を ECD と記載します。
|
|
9
9
|
|
|
10
|
-
クライアントはサードパーティのJavaプロセスで動作しており、上記のいずれかでClientHelloが行われます。
|
|
10
|
+
クライアントはサードパーティのJavaプロセスで動作しており、上記のいずれかで ClientHello が行われます。
|
|
11
|
-
それに対し、Tomcatはいずれの場合においてもServerHelloで返答できるようにしたいです。
|
|
11
|
+
それに対し、Tomcat はいずれの場合においても ServerHello で返答できるようにしたいです。
|
|
12
12
|
|
|
13
13
|
なお、クライアント、Tomcatサービス共にローカルホストにて起動しており、ローカルホスト上でやり取りをしています。
|
|
14
14
|
|
|
15
|
-
server.xmlの設定やその他で、設定不備や認識不足・誤りなどがあればご教授いただけますと幸いです。
|
|
15
|
+
server.xml の設定やその他で、設定不備や認識不足・誤りなどがあればご教授いただけますと幸いです。
|
|
16
16
|
|
|
17
17
|
### 2.発生している問題・エラーメッセージ
|
|
18
|
-
現在、Tomcatのserver.xmlでは RSA と ECD の暗号スイートを許容するよう設定していますが、
|
|
18
|
+
現在、Tomcat の server.xml では RSA と ECD の暗号スイートを許容するよう設定していますが、ClientHelloで RSA のみ指定された場合は HandShakeError となります。
|
|
19
|
-
そのため、1-2)の通信がHandShakeErrorとなります。
|
|
20
|
-
|
|
19
|
+
⇒複数の暗号スイートを許容した場合、RSA による通信ができません。
|
|
21
|
-
|
|
20
|
+
また、1-1)においても通信はできますが、ServerHelloでは ECD の暗号スイートが指定されました。
|
|
22
|
-
⇒
|
|
21
|
+
⇒ Tomcat の server.xml で RSA を優先度高としているので、RSA で返すことを期待していました。
|
|
22
|
+
「3.該当のソースコード」参照。
|
|
23
23
|
|
|
24
24
|
### 3.該当のソースコード
|
|
25
|
-
Tomcatのserver.xmlの抜粋を添付します。
|
|
25
|
+
Tomcat の server.xml の抜粋を添付します。
|
|
26
26
|
"ciphers"にて許容している暗号スイートを RSA と ECD と指定しています。
|
|
27
27
|
"honorCipherOrder"にて暗号スイートの優先度を設定しています。
|
|
28
28
|
("ciphers"の左から優先度高 [ RSA > ECD ])
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
### 4.試したこと
|
|
44
|
-
- Tomcat側の設定において、RSA のみを許容する設定とすると、1-2)の通信は行えましたが、1-1)が失敗するようになりました。その際、キーストアファイルも RSA のみで作り直しています。server.xmlの設定は以下になります。
|
|
44
|
+
- Tomcat側の設定において、RSA のみを許容する設定とすると、1-2)の通信は行えましたが、1-1)が失敗するようになりました。その際、キーストアファイルも RSA のみで作り直しています。server.xml の設定は以下になります。
|
|
45
45
|
```ここに言語名を入力
|
|
46
46
|
<SSLHostConfig certificateVerification="required" sslProtocol="TLS" protocols="TLSv1.2"
|
|
47
47
|
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA256"
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
- Tomcat側の設定において、ECD のみを許容した場合、1-1)および1-3)の通信が行えます。その際、キーストアファイルも ECD のみで作り直しています。
|
|
60
|
-
server.xmlの設定は以下になります。
|
|
60
|
+
server.xml の設定は以下になります。
|
|
61
61
|
```ここに言語名を入力
|
|
62
62
|
<SSLHostConfig certificateVerification="required" sslProtocol="TLS" protocols="TLSv1.2"
|
|
63
63
|
ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
|
|
@@ -70,21 +70,19 @@
|
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
表にまとめると以下になります。
|
|
73
|
+
No.4~No.7が試したことです。
|
|
73
|
-
No.
|
|
74
|
+
No.2を解決したいのですが、暗号スイートが複数指定であった場合、Tomcat が RSA の暗号スイートを選択してくれていないように見えます。
|
|
74
75
|
|
|
75
|
-
|No.|
|
|
76
|
+
|No.|Tomcat設定|ClientHello|ServerHello|通信結果|備考|
|
|
76
|
-
|
|
|
77
|
+
|--:|--:|--:|--:|:--:|:--|
|
|
78
|
+
|1|RSA、ECD|RSA、ECD|ECD|◯|1-1.のパターン|
|
|
79
|
+
|2|RSA、ECD|RSA|-|×|1-2.のパターン|
|
|
80
|
+
|3|RSA、ECD|ECD|ECD|◯|1-3.のパターン|
|
|
77
|
-
|
|
|
81
|
+
|4|RSA|RSA、ECD|-|×|試したこと|
|
|
82
|
+
|5|RSA|RSA|RSA|◯|試したこと|
|
|
78
|
-
|
|
|
83
|
+
|6|ECD|RSA、ECD|ECD|◯|試したこと|
|
|
79
|
-
|3|ECD、RSA|RSA|RSA|×|
|
|
80
|
-
|4|ECD|ECD、RSA|ECD|◯|
|
|
81
|
-
|
|
|
84
|
+
|7|ECD|ECD|ECD|◯|試したこと|
|
|
82
|
-
|6|ECD|RSA|-|-|
|
|
83
|
-
|7|RSA|ECD、RSA|ECD|×|
|
|
84
|
-
|8|RSA|ECD|-|-|
|
|
85
|
-
|9|RSA|RSA|RSA|◯|
|
|
86
85
|
|
|
87
|
-
※No.6とNo.8は未確認ですが、おそらく通信結果×となる。
|
|
88
86
|
|
|
89
87
|
|
|
90
88
|
|
1
誤字
title
CHANGED
|
File without changes
|
body
CHANGED
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
ciphers="TLS_RSA_WITH_AES_128_CBC_SHA256"
|
|
48
48
|
honorCipherOrder="true"
|
|
49
49
|
truststoreFile="....\Cert\Server_tmp\truststore_RSA.jks"
|
|
50
|
-
truststorePassword="
|
|
50
|
+
truststorePassword="XXX">
|
|
51
51
|
<Certificate certificateKeystoreFile="....\Cert\Server_tmp\keystore_vtn_vtn_RSA.jks"
|
|
52
|
-
certificateKeystorePassword="
|
|
52
|
+
certificateKeystorePassword="XXX"
|
|
53
53
|
type="RSA" />
|
|
54
54
|
</SSLHostConfig>
|
|
55
55
|
```
|
|
@@ -63,9 +63,9 @@
|
|
|
63
63
|
ciphers="TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
|
|
64
64
|
honorCipherOrder="true"
|
|
65
65
|
truststoreFile="....\Cert\Server\truststore_ECD.jks"
|
|
66
|
-
truststorePassword="
|
|
66
|
+
truststorePassword="XXX">
|
|
67
67
|
<Certificate certificateKeystoreFile="....\Cert\Server\keystore_vtn_vtn_ECD.jks"
|
|
68
|
-
certificateKeystorePassword="
|
|
68
|
+
certificateKeystorePassword="XXX" />
|
|
69
69
|
</SSLHostConfig>
|
|
70
70
|
```
|
|
71
71
|
|