Re: JESSIE - SSL BAD_CERTIFICATE Exception
Jary Grove <[email protected]>
| Newsgroups | gmane.comp.gcc.java.devel |
|---|---|
| Message-ID | <[email protected]> |
Any quick fix? I am compiling Jessie from the source and will be able to plug in the changes easily, if you can give me some pointers on how to ignore this error. Thanks Jary ----- Original Message ---- > From: Casey Marshall <[email protected]> > To: Jary Grove <[email protected]> > Cc: [email protected] > Sent: Monday, October 20, 2008 3:02:20 PM > Subject: Re: JESSIE - SSL BAD_CERTIFICATE Exception > > On Sat, Oct 18, 2008 at 2:17 PM, Jary Grove wrote: > > I am getting the BAD CERTIFICATE exception with jessie, any idea? I am using > the latest build. > > > > Following is the exception log: > > > > > > SSL HANDSHAKE output to {0}; state:{1}; outBuffer:{2} > java.nio.ByteBufferImpl[pos=5 lim=18432 cap=18 > > 432] WRITE_CLIENT_HELLO null > > SSL HANDSHAKE loop state={0} WRITE_CLIENT_HELLO > > SSL HANDSHAKE {0} struct { > > version: TLSv1.1; > > random: > > struct { > > gmt_unix_time: 1224363825; > > random_bytes: > 9a:15:99:6d:25:e3:04:7c:ff:3a:12:e1:ff:19:b1:f6:61:07:a3:2e:57:cc:aa:db:dd:47:82: > > f5; > > } Random; sessionId: ; > > cipher_suites: > > [30] { > > TLS_DHE_DSS_WITH_AES_256_CBC_SHA, > > TLS_DHE_RSA_WITH_AES_256_CBC_SHA, > > TLS_DH_DSS_WITH_AES_256_CBC_SHA, > > TLS_DH_RSA_WITH_AES_256_CBC_SHA, > > TLS_RSA_WITH_AES_256_CBC_SHA, > > TLS_DHE_DSS_WITH_AES_128_CBC_SHA, > > TLS_DHE_RSA_WITH_AES_128_CBC_SHA, > > TLS_DH_DSS_WITH_AES_128_CBC_SHA, > > TLS_DH_RSA_WITH_AES_128_CBC_SHA, > > TLS_RSA_WITH_AES_128_CBC_SHA, > > TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, > > TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, > > TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA, > > TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA, > > TLS_RSA_WITH_3DES_EDE_CBC_SHA, > > TLS_RSA_WITH_RC4_128_MD5, > > TLS_RSA_WITH_RC4_128_SHA, > > TLS_DHE_DSS_WITH_DES_CBC_SHA, > > TLS_DHE_RSA_WITH_DES_CBC_SHA, > > TLS_DH_DSS_WITH_DES_CBC_SHA, > > TLS_DH_RSA_WITH_DES_CBC_SHA, > > TLS_RSA_WITH_DES_CBC_SHA, > > TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA, > > TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA, > > TLS_RSA_EXPORT_WITH_DES40_CBC_SHA, > > TLS_RSA_EXPORT_WITH_RC4_40_MD5, > > TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, > > TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, > > TLS_RSA_WITH_NULL_MD5, > > TLS_RSA_WITH_NULL_SHA > > }; > > compression_methods: > > [1] { > > NULL > > }; > > extensions: ExtensionList { > > length = 2; > > }; > > } ClientHello; > > SSL HANDSHAKE processing in state {0}: > > {1} READ_SERVER_HELLO struct { > > type: SERVER_HELLO; > > struct { > > version: TLSv1; > > random: > > struct { > > gmt_unix_time: 1224363827; > > random_bytes: > 9a:a2:ee:0f:d6:e5:22:22:8d:66:f0:f6:57:c1:a6:60:7e:a1:01:25:df:7e:05:2e:08:1c:c > > 6:de; > > } Random; > > sessionId: > e1:07:00:00:36:0f:05:21:64:d7:f4:e2:7c:7d:6d:b4:6c:50:7a:9d:26:99:03:e0:bc:23 > > :f9:db:df:09:61:8a; > > cipherSuite: TLS_RSA_WITH_RC4_128_MD5; > > compressionMethod: NULL; > > extensions: > > (nil) > > } ServerHello; > > } Handshake; > > SSL HANDSHAKE processing in state {0}: > > {1} READ_CERTIFICATE struct { > > type: CERTIFICATE; > > struct { > > java.security.cert.CertificateException: malformed GeneralName: Tag class > is 0; > > } Certificate; > > } Handshake; > > This part looks relevant. It's possible that the X.509 parser in > classpath/gcj isn't able to properly parse your certificate. In this > case, it's failing to parse the GeneralName extension. > > I don't remember the details of ASN.1, DER, and this certificate > extension, but it's possible this extension blob in your certificate > isn't correct. > > One thing that may help this is to change the certificate parser to > just ignore extensions that it can't parse, leaving them as blobs of > bytes, unless someone wants to use that extension. X.509 and interop > is a bag of pain; adding hacks and special cases to handle > not-quite-correct certificates is something everyone ends up doing. > > Anyway, I'll call this a bug in our certificate parser. > > Thanks. > > > gnu.javax.net.ssl.provider.AlertException: BAD_CERTIFICATE: locally generated; > FATAL > > SSL HANDSHAKE output to {0}; state:{1}; outBuffer:{2} > java.nio.ByteBufferImpl[pos=5 lim=18432 cap=18 > > 432] WRITE_CLIENT_HELLO null > > SSL HANDSHAKE loop state={0} WRITE_CLIENT_HELLO > > SSL HANDSHAKE {0} struct { > > version: TLSv1.1; > > random: > > struct { > > gmt_unix_time: 1224363826; > > random_bytes: > 84:d5:62:3a:00:a9:d5:c9:3c:fe:13:05:6d:04:10:9e:0e:5b:ae:b7:72:37:b4:ef:f8:56:7d: > > 79; > > } Random; sessionId: ; > > cipher_suites: > > [30] { > > TLS_DHE_DSS_WITH_AES_256_CBC_SHA, > > TLS_DHE_RSA_WITH_AES_256_CBC_SHA, > > TLS_DH_DSS_WITH_AES_256_CBC_SHA, > > TLS_DH_RSA_WITH_AES_256_CBC_SHA, > > TLS_RSA_WITH_AES_256_CBC_SHA, > > TLS_DHE_DSS_WITH_AES_128_CBC_SHA, > > TLS_DHE_RSA_WITH_AES_128_CBC_SHA, > > TLS_DH_DSS_WITH_AES_128_CBC_SHA, > > TLS_DH_RSA_WITH_AES_128_CBC_SHA, > > TLS_RSA_WITH_AES_128_CBC_SHA, > > TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, > > TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, > > TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA, > > TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA, > > TLS_RSA_WITH_3DES_EDE_CBC_SHA, > > TLS_RSA_WITH_RC4_128_MD5, > > TLS_RSA_WITH_RC4_128_SHA, > > TLS_DHE_DSS_WITH_DES_CBC_SHA, > > TLS_DHE_RSA_WITH_DES_CBC_SHA, > > TLS_DH_DSS_WITH_DES_CBC_SHA, > > TLS_DH_RSA_WITH_DES_CBC_SHA, > > TLS_RSA_WITH_DES_CBC_SHA, > > TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA, > > TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA, > > TLS_RSA_EXPORT_WITH_DES40_CBC_SHA, > > TLS_RSA_EXPORT_WITH_RC4_40_MD5, > > TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, > > TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, > > TLS_RSA_WITH_NULL_MD5, > > TLS_RSA_WITH_NULL_SHA > > }; > > compression_methods: > > [1] { > > NULL > > }; > > extensions: ExtensionList { > > length = 2; > > }; > > } ClientHello; > > SSL HANDSHAKE processing in state {0}: > > {1} READ_SERVER_HELLO struct { > > type: SERVER_HELLO; > > struct { > > version: TLSv1; > > random: > > struct { > > gmt_unix_time: 1224363827; > > random_bytes: > 36:f4:51:d4:92:23:79:ac:41:86:d2:ec:29:c8:3b:e8:58:78:72:4e:42:48:0b:27:97:df:5 > > 9:b0; > > } Random; > > sessionId: > d8:03:00:00:cf:90:b3:93:8c:9d:e6:ca:b1:7a:f1:cf:6f:4f:1f:20:ab:86:c8:d9:ff:61 > > :c4:a4:2d:68:b4:0d; > > cipherSuite: TLS_RSA_WITH_RC4_128_MD5; > > compressionMethod: NULL; > > extensions: > > (nil) > > } ServerHello; > > } Handshake; > > SSL HANDSHAKE processing in state {0}: > > {1} READ_CERTIFICATE struct { > > type: CERTIFICATE; > > struct { > > java.security.cert.CertificateException: malformed GeneralName: Tag class > is 0; > > } Certificate; > > } Handshake; > > > > > > > > Thanks > > Jary > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam protection around > > http://mail.yahoo..com > > > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com