Skip to content
This repository has been archived by the owner on Feb 8, 2018. It is now read-only.

intermittent bad cert in the chain #3278

Closed
clone1018 opened this issue Mar 23, 2015 · 23 comments
Closed

intermittent bad cert in the chain #3278

clone1018 opened this issue Mar 23, 2015 · 23 comments

Comments

@clone1018
Copy link
Contributor

image

@chadwhitacre
Copy link
Contributor

Where are you seeing this, @clone1018? In Chrome I have the "does not have public audit records" message if I drill down, but the address bar is still locked green. Opera is green. Firefox is locked gray.

@clone1018
Copy link
Contributor Author

Version 42.0.2311.39 beta (64-bit)

Which should be the next stable.

@chadwhitacre
Copy link
Contributor

@clone1018 Are you sure the warning you're seeing is due to the audit records issue? That was also present on #3160 but wasn't why we were getting a broken lock.

@chadwhitacre chadwhitacre modified the milestone: Sprint 0 Mar 23, 2015
@clone1018
Copy link
Contributor Author

What else do you want me to look for @whit537 ?

@chadwhitacre
Copy link
Contributor

@clone1018 When you click "Certificate information" what do you see? Below is what I see. The problem on #3160 was that the signature algorithm was SHA-1 instead of SHA-256.

screen shot 2015-03-23 at 1 18 50 pm

@captn3m0
Copy link
Contributor

I'm on Chrome 43.0.2327.5 (Official Build) dev (64-bit) and while I get the public audit warning, the padlock is green for me,

@chadwhitacre
Copy link
Contributor

Closing because not reproducible with a stable version of Chrome. Reopen if it happens once 42 is stable.

@captn3m0
Copy link
Contributor

captn3m0 commented Jul 3, 2015

I'm still on a dev-build (45), but I tracked down the issue to a a sha1 starcom SSL certificate somewhere in the chain. Here is a screenshot of the Startcom SSL certificate in the chain with SHA1 as the signature algorithm:

screenshot_2015-07-03_16-09-50

This cert (StartCom) is valid till 10/25/17, 2:27:09 AM GMT+5:30, which is why Chrome gives the warning. The list of domains in the gratipay cert is:

DNS Name: 0nfx8fkf.gratipay.com
DNS Name: gratipay.com
DNS Name: www.gratipay.com
DNS Name: gittip.co
DNS Name: www.gittip.co
DNS Name: gittip.com
DNS Name: gittip.org
DNS Name: gratipay.co
DNS Name: gratipay.net
DNS Name: gratipay.org
DNS Name: www.gittip.com
DNS Name: www.gittip.org
DNS Name: www.gittip.com
DNS Name: www.gratipay.co
DNS Name: www.gratipay.org
DNS Name: www.gratipay.net

I am guessing that this is a configuration issue on Heroku side?

@chadwhitacre
Copy link
Contributor

@captn3m0 Why do you think it's Heroku? Sounds like a StartCom/Chrome interaction to me.

@captn3m0
Copy link
Contributor

captn3m0 commented Jul 9, 2015

I was guessing it must be a mis-configuration issue on Heroku's side because that intermediary cert is clearly wrong. I was thinking it might be using an old cert config, but that seems unlikely as well.

@captn3m0
Copy link
Contributor

captn3m0 commented Jul 9, 2015

I haven't ever used Heroku custom SSL, so don't really know much here.

@chadwhitacre chadwhitacre reopened this Jul 10, 2015
@chadwhitacre
Copy link
Contributor

I believe we are responsible for uploading the intermediate certificate bundle to Heroku. I guess we're using an out-of-date chain?

@chadwhitacre
Copy link
Contributor

Weird. I'm seeing a SHA-256 signature algorithm for the intermediate certificate:

screen shot 2015-07-09 at 8 29 43 pm

I'm on Chrome 43.0.2357.132. What could explain the discrepancy?

@chadwhitacre
Copy link
Contributor

It looks like the expiration timestamps differ as well.

@captn3m0
Copy link
Contributor

Yes, I'm seeing green here as well for now. But once every few weeks this
gets red again because I get a sha1 cert in the chain.

On Fri 10 Jul, 2015 06:03 Chad Whitacre [email protected] wrote:

It looks like the expiration timestamps differ as well.


Reply to this email directly or view it on GitHub
#3278 (comment)
.

@chadwhitacre
Copy link
Contributor

Blech. Reminds me of #1512 and #2586. 😞

@chadwhitacre
Copy link
Contributor

If this is indeed parallel to #1512 and #2586, then I interpret this bug as a result of leaky abstraction. We have so very little hope of getting to the bottom of this, because it seems to be a bug somewhere in AWS, and we're insulated even from that by Heroku. To my way of thinking, the way to resolve this class of bugs is to port to an architecture that we control more directly.

@captn3m0
Copy link
Contributor

Yeah. Maybe file a support ticket with heroku?

@chadwhitacre
Copy link
Contributor

We're seeing intermittent behavior—"once every few weeks"—where an out-of-date certificate is included in the chain for our SSL cert on https://gratipay.com/. The result is a broken trust indicator in Chrome. Here's our public ticket with more detail. How can we debug this?

https://help.heroku.com/tickets/251995

@chadwhitacre chadwhitacre changed the title SSL Certificate - No Public Audit records intermittent bad cert in the chain Jul 20, 2015
@nekopanic
Copy link

@captn3m0 One thing to check: do you have any StartCom root certificates in your system certificate chain? You might see two with the common name "StartCom Certification Authority", one as SHA-1 and the other as SHA-256. I'm not sure which OS you are on, but I'm trying to find if this post from the Chrome team is related. This certificate is issued under the SHA-1 root, so maybe it is taken that to mean insecure.

On Chrome 45/OSX I can't reproduce, so I wonder if it might related to your OS certs from this clause:

Note: SHA-1-based signatures for trusted root certificates are not a problem because TLS clients trust them by their identity, rather than by the signature of their hash.

@captn3m0
Copy link
Contributor

I do have 3 StartCom certs in my system certificate chain. I'm on arch linux. Only one of the 3 certs is a SHA1 cert, but its not the one being referenced above. (all 3 have CA=true)

The one breaking the ssl is a sha1 intermediate cert.

@captn3m0
Copy link
Contributor

Ok, after much digging around (using the cert's name) I think I have understood the issue.

It's due to Windows' or Chrome's certificate cache. Because they (old and new intermediary cert) have the same name, the client will use the cached variant, which might be old and SHA1. The naming is StartCOM's fault. The bad caching is Windows' or Chrome's fault. They're not working very hard to fix it.

It makes perfect sense in my case because I'm very reluctant of clearing my browser cache. I copy my chrome profile over OS re-installs.

This thread on StartCom forums also has others facing the same issue.

Closing this issue as we can't really do anything about it for now.

@chadwhitacre
Copy link
Contributor

Good debugging, @stevo550 @captn3m0, thanks.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants