Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 362445 - will soon need renewed signing certificate
Summary: will soon need renewed signing certificate
Status: RESOLVED FIXED
Alias: None
Product: Community
Classification: Eclipse Foundation
Component: Servers (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Eclipse Webmaster CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-30 21:24 EDT by David Williams CLA
Modified: 2012-04-12 10:50 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2011-10-30 21:24:16 EDT
This is probably already on your calendar ... but, appears certs need to be "renewed". 

Jars signed with current certificate are returning 

Warning:
This jar contains entries whose signer certificate will expire within six months.

from jarsigner -verify

Using "-verbose -cert" gives this additional detail

      X.509, CN="Eclipse.org Foundation, Inc", OU=Digital ID Class 3 - Java Object Signing, O="Eclipse.org Foundation, Inc", L=Ottawa, ST=Ontario, C=CA
      [certificate will expire on 4/13/12 7:59 PM] 


I hope there is some way to "renew" or "extend" the certificate ... so that things signed with old one will not show up as "expired" in April ... but, I'm not sure how all that works. 

I hope, also, there is some to do this before April, so that things signed for Indigo SR2 (February) "get the latest" ... also good to have well in advance of Juno (June) since some jars are not necessarily "rebuilt" right up to last minute. (That is, might be built and finished in March ... maybe).
Comment 1 Bouchet Stéphane CLA 2011-11-10 05:01:42 EST
the simrel checker is also warning us about this : 
http://build.eclipse.org/juno/simrel/reports/verifydiroutput/verified.txt


org.eclipse.jetty.bundles.f.source_8.0.1.201109140450.jar:                    		 jar verified.  Warning:  This jar contains entries whose signer certificate will expire within six months.   Re-run with the -verbose and -certs options for more details.
Comment 2 Denis Roy CLA 2011-11-10 10:04:23 EST
I am fully confident that everyone, including Verisign, Thawte, and dozens of other competing offerings will be reminding us regularly from now 'till spring.
Comment 3 Denis Roy CLA 2012-02-28 15:57:37 EST
This is on the to-do list for the first half of March.

> I hope there is some way to "renew" or "extend" the certificate ... so that
> things signed with old one will not show up as "expired" in April ... but, I'm
> not sure how all that works. 

FWIW, once something is signed with a valid cert, it is forever valid. Certs are renewed, but it's really not the same cert as the expired one.  We generate a new private key and a new CSR, and obtain a brand new 3-year cert.
Comment 4 David Williams CLA 2012-02-28 23:33:36 EST
(In reply to comment #3)
> This is on the to-do list for the first half of March.
> 
> > I hope there is some way to "renew" or "extend" the certificate ... so that
> > things signed with old one will not show up as "expired" in April ... but, I'm
> > not sure how all that works. 
> 
> FWIW, once something is signed with a valid cert, it is forever valid. Certs
> are renewed, but it's really not the same cert as the expired one.  We generate
> a new private key and a new CSR, and obtain a brand new 3-year cert.

So, those "old" Indigo SR2 jars will be considered "valid" but will forever give the warning "certificate expired on 4/13/12" (After April, that is). Seems like a bummer, but probably just shows how much I don't know.
Comment 5 David Williams CLA 2012-02-29 00:07:02 EST
> 
> So, those "old" Indigo SR2 jars will be considered "valid" but will forever
> give the warning "certificate expired on 4/13/12" (After April, that is). Seems
> like a bummer, but probably just shows how much I don't know.

To answer my own question, I had to go all the way back to "Europa", but did find jars there that reported "expired" but were still considered valid. 

$ jarsigner -verify  org.eclipse.platform_3.3.3.r33x_r20080129.jar
jar verified.

Warning: 
This jar contains entries whose signer certificate has expired. 

Not sure how that is useful information (that, it's "verified", but contains "expired certificate") but guess it means things to security people in the right context.
Comment 6 Denis Roy CLA 2012-02-29 08:49:05 EST
If the warning bothers you, you do have the option of re-signing everything with the new cert... but you'd be doing this every three years  :)

If you ask me, that message shouldn't be a 'warning' per se, but an 'info' message.

Anyway, the kind folks at digicert have offered us a FREE 3-year code signing cert...  Pretty hard to say no to 'free'  :-D
Comment 7 Denis Roy CLA 2012-04-04 11:48:34 EDT
Thanks to our friends at Digicert (http://www.digicert.com/code-signing/) for the generous donation of a 3-year Java code signing cert.  We've been using DigiCert for our SSL certs for over 7 years now.



I've installed the new signing certificate, updated the signer and tested.  New certificate is valid until March 5, 2015.

droy@build:/opt/public/download-staging.priv/technology/phoenix> jarsigner -verify -verbose -certs org.eclipse.osgi.util_3.0.0.jar 

         936 Wed Apr 04 11:43:06 EDT 2012 META-INF/MANIFEST.MF
         450 Wed Apr 04 11:43:08 EDT 2012 META-INF/ECLIPSE_.SF
        7816 Wed Apr 04 11:43:08 EDT 2012 META-INF/ECLIPSE_.RSA
sm        57 Wed Apr 04 11:43:04 EDT 2012 META-INF/eclipse.inf

      [entry was signed on 4/4/12 11:43 AM]
      X.509, CN="Eclipse.org Foundation, Inc.", OU=IT, O="Eclipse.org Foundation, Inc.", L=Ottawa, ST=Ontario, C=CA
      [certificate is valid from 2/28/12 7:00 PM to 3/5/15 7:00 AM]
      X.509, CN=DigiCert High Assurance Code Signing CA-1, OU=www.digicert.com, O=DigiCert Inc, C=US

[snip]

  s = signature was verified 
  m = entry is listed in manifest
  k = at least one certificate was found in keystore
  i = at least one certificate was found in identity scope

jar verified.


Please test at your earliest convenience.
Comment 8 David Williams CLA 2012-04-12 10:41:37 EDT
I've been using/testing and seems to work fine (little that I know how to test signing). 

I do want to emphasize, for general knowledge sharing, as mentioned in comment 7, that the "key" file name in META-INF name has changed to "ECLIPSE_.SF". 

Originally, when we started signing at Eclipse, it was "ECLIPSE.SF", then three years later (when that first one expired) it became "ECLIPSEF.SF", and, now "ECLIPSE_.SF". 

This effects two things I know of. 

1. In WTP, we had some heuristic code used during a build that, in short, said "if a quick peek shows a bundle has already been signed, then add it to the "exclude list" and don't try processing it again." 

And in my hasty coding, I hard coded the values to last only three years ....
if (entryname.endsWith("ECLIPSE.SF") || entryname.endsWith("ECLIPSEF.SF")) {
... 

So, now that heuristic code has to be "fixed" (bug 376265). 

So, long story short, if you could attempt to remember in future to always use "ECLISPE"<something>".SF" we could fix our heuristic to be a little more resilient to future changes (i.e. use, essentially a regex expression such as "ECLIPSE.*\.SF"

2. Many builds project use a "p2 comparator" to compare two bundles that have been built and end up with exact same version and qualifier (since the existing one will be used, if no change to version or qualifier, so the comparator is a test that they really are the same). So, now, with new signing cert, the comparator shows lots of "warnings" of the form "previous bundle contained 'ECLIPSEF.SF'. This does no harm ... just wanted to put the side effect in writing. 

(I think you can close as "fixed" ... thanks for all you do).
Comment 9 Denis Roy CLA 2012-04-12 10:50:11 EDT
Thanks, David.  Perhaps I'm doing something wrong, but every time I "renew" the cert it seems I have to generate a new private key, and I always seem to run into errors when I try to do that withing the same Alias in the keystore.  So I always create a new Alias (2006 was just Eclipse, 2009 Eclipse Foundation, and Eclipse.org in 2012).  In any case, I _had_ to create a new private key for 2012 since the old key size was too small.

Again, I'm probably doing something wrong, but if this process turns out to be correct, I'll simply create new aliases based on "EclipseYYYY", such as Eclipse2015, Eclipse2018, etc. so that your regexp works.