Hello everybody,

we use Webtest for an Java application requiring client authentication with a 
client certificate. The whole process ist set up correctly, at least from my 
limited understanding of the issue, and it is running with R_1804. Now we want 
to upgrade to R_1812, because we have some issues with JavaScript and would 
like to see if the new release can handle them. Unfortunately, R_1812 doesn't 
seem to send the client certificate to the server.

Configuration:
- keystore-client.jks containing the client's key
- truststore-client.jks containing the server's certificate and the chain to 
the root CA
- keystore-server.jks containing the server's key
- truststore-server.jks containing the client's certificate and the chain to 
the root CA

Run with R_1804: Basically runs, but with lots of JavaScript errors.

Run with R_1812:
DEBUG [wire] << "HTTP/1.1 403 A client certificate is required for accessing 
this web application but the server's listener is not configured for mutual 
authentication (or the client did not provide a certificate).

I don't think the problem lies on the server side, as the tests run in 
principle with R_1804 and the application can be accessed if I point my browser 
to it and show the certificate we use for our web tests. Do you have any hints 
about how Webtest needs to be configured in order to get Client Authentication 
running with R_1812? Your help is very much appreciated.

Best regards,
Stefan



And, at last, the trace, truncated for readability:
[...]
trigger seeding of SecureRandom
done seeding SecureRandom
[INFO] Started Jetty Server
matching alias: localhost
[...]
11:37:43,914 DEBUG [DefaultClientConnectionOperator] Connecting to 
localhost:9443
15582013@qtp-33156000-0 - Acceptor0 [email protected]:9443, 
setSoTimeout(60000) called
11137488@qtp-33156000-2, READ:  SSL v2, contentType = Handshake, translated 
length = 73
*** ClientHello, TLSv1
RandomCookie:  GMT: 1306843511 bytes = { 56, 196, 206, 0, 111, 73, 134, 118, 8, 
160, 247, 69, 106, 117, 103, 76, 5, 14, 88, 150, 126, 24, 1, 127, 89, 72, 180, 
1 }
Session ID:  {}
Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, 
TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, 
TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, 
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, 
SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, 
SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, 
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, 
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA]
Compression Methods:  { 0 }
***
%% Created:  [Session-1, SSL_RSA_WITH_RC4_128_MD5]
*** ServerHello, TLSv1
RandomCookie:  GMT: 1306843511 bytes = { 52, 169, 220, 150, 8, 25, 141, 5, 48, 
35, 251, 38, 154, 99, 195, 154, 146, 158, 201, 202, 0, 49, 137, 26, 82, 193, 
244, 169 }
Session ID:  {78, 229, 217, 119, 73, 113, 217, 152, 22, 39, 138, 111, 136, 138, 
75, 153, 88, 82, 203, 175, 246, 208, 222, 229, 202, 78, 162, 83, 64, 103, 18, 
203}
Cipher Suite: SSL_RSA_WITH_RC4_128_MD5
Compression Method: 0
***
Cipher suite:  SSL_RSA_WITH_RC4_128_MD5
*** Certificate chain
chain [0] = [
[
  Version: V3
  Subject: CN=localhost, OU=xyz.com, O=Servers, L=London, ST=London, C=GB
  Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5

  Key:  Sun RSA public key, 1024 bits
  modulus: 
108179520582626822638263617848905027511161983397035334859586617940396503275226297314419112641429673772815414154588185689450086794418126380116469876447746116876526529296927698475792482523613734425774095991267658995448239701473099823977872960073463698471939264453180732791079663625225376172627320425821382416099
  public exponent: 65537
  Validity: [From: Wed Jan 19 13:32:08 CET 2011,
               To: Fri Jan 18 13:32:08 CET 2013]
  Issuer: OU=xyz SubCA6, O=xyz.com
  SerialNumber: [    0173a1]
]
Finalizer, called close()
Finalizer, called closeInternal(true)
Finalizer, SEND TLSv1 ALERT:  warning, description = close_notify
chain [1] = [
[
  Version: V3
  Subject: OU=xyz SubCA6, O=xyz.com
  Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5

  Key:  Sun RSA public key, 2048 bits
  modulus: 
21077179614980924552855547926845795082503734962648615738374707564394966771312487699344668730631450906054002105218090582799476155617105906711105854391477692983426765905285481004581815097457749138965413226194802444891334213260154330388969319371638451935786431474020328288795926093886156602391468417274716885691388701694666218335304910071020802195863670908856712216966723423610875601275038947993478888330783293320280090417025936486552048706050451547170489848081911307807776799405983928074385716345769457327635540581499808253060786405830073574096180165205179031691973127115275108578539472757566984943643155472507783162351
  public exponent: 65537
  Validity: [From: Mon Oct 27 17:31:04 CET 2008,
               To: Sun Oct 27 17:31:04 CET 2013]
  Issuer: OU=xyz.com Root CA, O=xyz.com
  SerialNumber: [    0b]
]
Finalizer, WRITE: TLSv1 Alert, length = 2
chain [2] = [
[
  Version: V3
  Subject: OU=xyz.com Root CA, O=xyz.com
  Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5

  Key:  Sun RSA public key, 2048 bits
  modulus: 
25044731012054645282617997587135108698221091449946114046965559409838353964603378893947190416649335671787115486301258240601119549460512507214213349309463747555130118623321803608778625008929468277426351567138634928886111370594014445909773807561246229952264996153215096847999657351678255661535577755892764953105218210180109130655895296582874388666225205057529302011092669389985743983002852428541926068473665396990966701377299066260745791087063571689460764459861960684953434847745337983185780406938492832264833331532126794763886678707290293547890427336915794820137224506816880965027470649206975301006854620635705104491821
  public exponent: 65537
  Validity: [From: Thu Feb 01 12:28:27 CET 2001,
               To: Tue Feb 02 12:28:27 CET 2016]
  Issuer: OU=xyz.com Root CA, O=xyz.com
  SerialNumber: [    00]
]
***
*** CertificateRequest
Cert Types: RSA, DSS, 
Cert Authorities:
<OU=xyz SubCA6, O=xyz.com>
<CN=g-hm-testuser-dev, OU=people, O=xyz.com>
<OU=xyz.com Root CA, O=xyz.com>
*** ServerHelloDone
11137488@qtp-33156000-2, WRITE: TLSv1 Handshake, length = 3153
11137488@qtp-33156000-2, READ: TLSv1 Handshake, length = 141
*** Certificate chain
***
RSA PreMasterSecret version: TLSv1
*** ClientKeyExchange, RSA PreMasterSecret, TLSv1
Random Secret:  { 3, 1, 168, 147, 30, 214, 196, 68, 30, 168, 72, 187, 203, 126, 
95, 236, 0, 99, 112, 166, 185, 35, 182, 232, 232, 129, 193, 134, 42, 196, 183, 
31, 71, 47, 170, 109, 34, 80, 242, 154, 164, 52, 88, 236, 178, 67, 79, 14 }
SESSION KEYGEN:
PreMaster Secret:
0000: 03 01 A8 93 1E D6 C4 44   1E A8 48 BB CB 7E 5F EC  .......D..H..._.
0010: 00 63 70 A6 B9 23 B6 E8   E8 81 C1 86 2A C4 B7 1F  .cp..#......*...
0020: 47 2F AA 6D 22 50 F2 9A   A4 34 58 EC B2 43 4F 0E  G/.m"P...4X..CO.
CONNECTION KEYGEN:
Client Nonce:
0000: 4E E5 D9 77 38 C4 CE 00   6F 49 86 76 08 A0 F7 45  N..w8...oI.v...E
0010: 6A 75 67 4C 05 0E 58 96   7E 18 01 7F 59 48 B4 01  jugL..X.....YH..
Server Nonce:
0000: 4E E5 D9 77 34 A9 DC 96   08 19 8D 05 30 23 FB 26  N..w4.......0#.&
0010: 9A 63 C3 9A 92 9E C9 CA   00 31 89 1A 52 C1 F4 A9  .c.......1..R...
Master Secret:
0000: D4 E9 CE 2D B9 0D 87 0E   A4 14 F7 EB 3A 88 D2 79  ...-........:..y
0010: 1A 2C 38 BB DE A8 C1 E4   DB F6 E4 1E 2C 7B C4 29  .,8.........,..)
0020: 0B A0 8F E4 BF 26 EB 59   77 80 01 B1 57 17 82 0A  .....&.Yw...W...
Client MAC write Secret:
0000: 44 A1 DB 2B 94 6F E4 1F   D5 8E 6E 16 90 2E 54 0E  D..+.o....n...T.
Server MAC write Secret:
0000: 15 FF 37 23 23 85 A8 3A   57 EF 83 67 AC 82 B5 1F  ..7##..:W..g....
Client write key:
0000: A5 F4 93 97 7A C1 7E 5A   FC 5D A2 8D 3E 1F DC CB  ....z..Z.]..>...
Server write key:
0000: DF 87 5C BB A5 5B 1D F7   EA 57 98 2B DF 39 56 D0  ..\..[...W.+.9V.
... no IV for cipher
11137488@qtp-33156000-2, READ: TLSv1 Change Cipher Spec, length = 1
11137488@qtp-33156000-2, READ: TLSv1 Handshake, length = 32
*** Finished
verify_data:  { 22, 109, 13, 249, 189, 223, 15, 199, 104, 110, 189, 65 }
***
11137488@qtp-33156000-2, WRITE: TLSv1 Change Cipher Spec, length = 1
*** Finished
verify_data:  { 210, 22, 171, 134, 233, 234, 125, 59, 47, 47, 106, 168 }
***
11137488@qtp-33156000-2, WRITE: TLSv1 Handshake, length = 32
%% Cached server session: [Session-1, SSL_RSA_WITH_RC4_128_MD5]
11:37:44,039 DEBUG [RequestAddCookies] CookieSpec selected: mine
11:37:44,039 DEBUG [RequestAuthCache] Auth cache not set in the context
11:37:44,039 DEBUG [DefaultHttpClient] Attempt 1 to execute request
11:37:44,039 DEBUG [DefaultClientConnection] Sending request: GET /index.html 
HTTP/1.1
11:37:44,039 DEBUG [wire] >> "GET /index.html HTTP/1.1[\r][\n]"
11:37:44,039 DEBUG [wire] >> "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; 
Windows 98)[\r][\n]"
11:37:44,039 DEBUG [wire] >> "Accept-Language: en-us,en;q=0.5[\r][\n]"
11:37:44,039 DEBUG [wire] >> "Accept: */*[\r][\n]"
11:37:44,039 DEBUG [wire] >> "Host: localhost:9443[\r][\n]"
11:37:44,039 DEBUG [wire] >> "Connection: Keep-Alive[\r][\n]"
11:37:44,039 DEBUG [wire] >> "[\r][\n]"
11:37:44,039 DEBUG [headers] >> GET /index.html HTTP/1.1
11:37:44,039 DEBUG [headers] >> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; 
Windows 98)
11:37:44,039 DEBUG [headers] >> Accept-Language: en-us,en;q=0.5
11:37:44,039 DEBUG [headers] >> Accept: */*
11:37:44,039 DEBUG [headers] >> Host: localhost:9443
11:37:44,039 DEBUG [headers] >> Connection: Keep-Alive
11137488@qtp-33156000-2, READ: TLSv1 Application Data, length = 196
11137488@qtp-33156000-2, WRITE: TLSv1 Application Data, length = 357
11137488@qtp-33156000-2, WRITE: TLSv1 Application Data, length = 1741
11:37:44,054 DEBUG [wire] << "HTTP/1.1 403 A client certificate is required for 
accessing this web application but the server's listener is not configured for 
mutual authentication (or the client did not provide a certificate).[\r][\n]"
11:37:44,054 DEBUG [wire] << "Content-Type: text/html; 
charset=iso-8859-1[\r][\n]"
11:37:44,070 DEBUG [wire] << "Cache-Control: 
must-revalidate,no-cache,no-store[\r][\n]"
11:37:44,070 DEBUG [wire] << "Content-Length: 1725[\r][\n]"
11:37:44,070 DEBUG [wire] << "Server: Jetty(6.1.24)[\r][\n]"
11:37:44,070 DEBUG [wire] << "[\r][\n]"
11:37:44,070 DEBUG [DefaultClientConnection] Receiving response: HTTP/1.1 403 A 
client certificate is required for accessing this web application but the 
server's listener is not configured for mutual authentication (or the client 
did not provide a certificate).
11:37:44,070 DEBUG [headers] << HTTP/1.1 403 A client certificate is required 
for accessing this web application but the server's listener is not configured 
for mutual authentication (or the client did not provide a certificate).
[...]
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest

Reply via email to