[ moved to this list, per https://groups.google.com/d/msg/mozilla.support.firefox/Ba4MzFQxqP8/DbmDUCbJqxkJ ]
I was trying to figure why some of the uses were not having a chain sent to the server for their client certificate, and it turns out Firefox does not send (by default?) the chaining certs. After reviewing https://wiki.mozilla.org/PSM:CertPrompt , it seems Firefox will 'validate' that the client cert can be chained, before allowing the user to select it. Here is a snippet of a diff of the TLS Certificate, Client Key Exchange, and Certificate Verify packets of IE and FF. Full packets upon request. $ diff -u firefox-client-TLS.txt internetExplorer-client-TLS.txt | less --- firefox-client-TLS.txt 2015-03-02 16:13:05.918866100 -0500 +++ internetExplorer-client-TLS.txt 2015-03-02 16:05:01.332097100 -0500 @@ -1,18 +1,18 @@ No. Time Source Destination Port Protocol Length Info - 3071 2015-03-02 16:09:59 192.168.4.12 67.90.184.200 443 TLSv1.2 565 Certificate, Client Key Exchange, Certificate Verify + 836 2015-03-02 16:01:42 192.168.4.12 67.90.184.200 443 TLSv1 634 Certificate, Client Key Exchange, Certificate Verify -Frame 3071: 565 bytes on wire (4520 bits), 565 bytes captured (4520 bits) on interface 0 +Frame 836: 634 bytes on wire (5072 bits), 634 bytes captured (5072 bits) on interface 0 Interface id: 0 (\Device\NPF_{62C9E26B-6677-4CCF-82EC-CD288CDC77D1}) Encapsulation type: Ethernet (1) - Arrival Time: Mar 2, 2015 16:09:59.702193000 Eastern Standard Time + Arrival Time: Mar 2, 2015 16:01:42.634780000 Eastern Standard Time [Time shift for this packet: 0.000000000 seconds] - Epoch Time: 1425330599.702193000 seconds - [Time delta from previous captured frame: 0.000054000 seconds] - [Time delta from previous displayed frame: 0.000054000 seconds] - [Time since reference or first frame: 691.721761000 seconds] - Frame Number: 3071 - Frame Length: 565 bytes (4520 bits) - Capture Length: 565 bytes (4520 bits) + Epoch Time: 1425330102.634780000 seconds + [Time delta from previous captured frame: 0.000022000 seconds] + [Time delta from previous displayed frame: 0.000022000 seconds] + [Time since reference or first frame: 194.654348000 seconds] + Frame Number: 836 + Frame Length: 634 bytes (5072 bits) + Capture Length: 634 bytes (5072 bits) [Frame is marked: False] [Frame is ignored: False] [Protocols in frame [truncated]: eth:ethertype:ip:tcp:ssl:pkcs-1:x509sat:x509sat:x509sat:x509sat:x509sat:x509sat:x509sat:x509sat:x509sat:x509sat:x509sat:pkcs-1:x509ce:x509ce:x509ce:x509ce:x509ce:pkix1implicit:x509ce:x509sat:x509ce:x509sat:x] <snip/> Secure Sockets Layer - TLSv1.2 Record Layer: Handshake Protocol: Multiple Handshake Messages + TLSv1 Record Layer: Handshake Protocol: Multiple Handshake Messages Content Type: Handshake (22) - Version: TLS 1.2 (0x0303) - Length: 1691 + Version: TLS 1.0 (0x0301) + Length: 3052 Handshake Protocol: Certificate Handshake Type: Certificate (11) - Length: 1289 - Certificates Length: 1286 - Certificates (1286 bytes) + Length: 2652 + Certificates Length: 2649 + Certificates (2649 bytes) Certificate Length: 1283 Certificate (id-at-commonName=PYERON.JASON.J.1291147719,id-at-organizationalUnitName=CONTRACTOR,id-at-organizationalUnitName=PKI,id-at-organizationalUnitName=DoD,id-at-organizationName=U.S. Government,id-at-countryName=US) signedCertificate @@ -250,69 +251,218 @@ Algorithm Id: 1.2.840.113549.1.1.5 (shaWithRSAEncryption) Padding: 0 encrypted: 94d7842ef98ac9f4a525eef75e01a2d6fc739ca4310504db... + Certificate Length: 1360 + Certificate (id-at-commonName=DOD CA-32,id-at-organizationalUnitName=PKI,id-at-organizationalUnitName=DoD,id-at-organizationName=U.S. Government,id-at-countryName=US) + signedCertificate + version: v3 (2) + serialNumber: 929 + signature (shaWithRSAEncryption) + Algorithm Id: 1.2.840.113549.1.1.5 (shaWithRSAEncryption) + issuer: rdnSequence (0) + rdnSequence: 5 items (id-at-commonName=DoD Root CA 2,id-at-organizationalUnitName=PKI,id-at-organizationalUnitName=DoD,id-at-organizationName=U.S. Government,id-at-countryName=US) Note the inclusion of the DOD CA-32 certificate on IE. This is from FF 36.0. If this is a bug, I will file a ticket on Bugzilla, but I am assuming it is a configuration issue, likely PEBKAC. -- -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- - - - Jason Pyeron PD Inc. http://www.pdinc.us - - Principal Consultant 10 West 24th Street #100 - - +1 (443) 269-1555 x333 Baltimore, Maryland 21218 - - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- This message is copyright PD Inc, subject to license 20080407P00. -- dev-tech-crypto mailing list dev-tech-crypto@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-crypto