2016-11-25 4 views
0

背景

私のアプリケーションはjboss 5にデプロイされ、MASSLを必要とするWebサービスサーバーと通信します。 (2ウェイSSL)SSL接続中にクライアント証明書が送信されないのはなぜですか? CXF 2.7.9

問題

SSL接続のログを見ることによって、クライアント証明書であっても、それが最初にロードされている送信されません。

ログの詳細は次のとおりです。クライアント証明書は、サーバーhelloが実行された後に送信されるはずです

  1. 応答に基づいて、[EDIT]追加された詳細は、ログにCertificateRequestを添加

  2. 効率の良い証明書が実際に要求の上方に一致 - (A)アルゴリズムはRSAであり、(B)要求で明記されたCAによって署名された1つによって署名された。

l OGS:

2016-11-25 09:32:38,434 INFO [STDOUT] (http-0.0.0.0-8080-4) keyStore is : /XX/XX/my.jks 
2016-11-25 09:32:38,434 INFO [STDOUT] (http-0.0.0.0-8080-4) keyStore type is : jks 
2016-11-25 09:32:38,434 INFO [STDOUT] (http-0.0.0.0-8080-4) keyStore provider is : 
2016-11-25 09:32:38,434 INFO [STDOUT] (http-0.0.0.0-8080-4) init keystore 
2016-11-25 09:32:38,440 INFO [STDOUT] (http-0.0.0.0-8080-4) init keymanager of type SunX509 
2016-11-25 12:00:04,420 INFO [STDOUT] (http-0.0.0.0-8080-4) *** 
2016-11-25 12:00:04,421 INFO [STDOUT] (http-0.0.0.0-8080-4) found key for : mykey 
2016-11-25 12:00:04,432 INFO [STDOUT] (http-0.0.0.0-8080-4) chain [0] = [ 
[ 
    Version: V3 
    Subject: CN=xx.xxx.xxx.com, OU=xxxxxxxx, O=xxxx, L=xxxx, ST=xxx, C=xx 
    Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5 

Issuer: CN=abc AD Object CA1, DC=core, DC=dir, DC=def, DC=com 

... 

2016-11-25 12:00:05,520 INFO [STDOUT] (http-0.0.0.0-8080-4) *** CertificateRequest 
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) Cert Types: 
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) RSA 
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) Cert Authorities: 
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) <CN=abc AD Object CA1, DC=core, DC=dir, DC=def, DC=com> 
2016-11-25 12:00:05,521 INFO [STDOUT] (http-0.0.0.0-8080-4) <CN=abc Policy CA1, O=gh Corporation Limited> 
2016-11-25 12:00:05,522 INFO [STDOUT] (http-0.0.0.0-8080-4) <CN=abc Root CA> 

2016-11-25 09:32:39,475 INFO [STDOUT] (http-0.0.0.0-8080-4) *** ServerHelloDone 
2016-11-25 09:32:39,475 INFO [STDOUT] (http-0.0.0.0-8080-4) *** Certificate chain 
2016-11-25 09:32:39,475 INFO [STDOUT] (http-0.0.0.0-8080-4) *** 
2016-11-25 09:32:39,482 INFO [STDOUT] (http-0.0.0.0-8080-4) *** ClientKeyExchange, RSA PreMasterSecret, TLSv1 
2016-11-25 09:32:39,482 INFO [STDOUT] (http-0.0.0.0-8080-4) http-0.0.0.0-8080-4, WRITE: TLSv1 Handshake, length = 269 
2016-11-25 09:32:39,482 INFO [STDOUT] (http-0.0.0.0-8080-4) SESSION KEYGEN: 
2016-11-25 09:32:39,483 INFO [STDOUT] (http-0.0.0.0-8080-4) PreMaster Secret: 

私はここで何かを質問

が不足していましたか?

+0

私は、CertificateRequestで表された制約に一致する証明書が見つかりませんでした。クライアントが空の 'CertificateChain'を送信していることに注意してください。 – slawekpl

+0

はい、私はそれに気付きました。それはクライアントが証明書を送信する場所で、今は空です。 – David

答えて

1

クライアント証明書は、サーバーhelloが完了した後に送信されるはずです。

いいえ、それはありません。サーバは、クライアントがサーバ

  • で指定されたCAのいずれかのクライアントによって署名された証明書を持ってCertificateRequestメッセージ
  • で、それを要求した

    • :場合にのみ送信されることになっていますサーバーによって指定された証明書の種類に一致する証明書があります。

    これらの条件がすべて適用されるという証拠はありません。

  • +0

    情報をありがとう、私は答えで私の質問を更新しました。 – David

    関連する問題