[MacPorts] #42718: certsync fails to verify macports.org certificate

MacPorts noreply at macports.org
Tue Mar 4 09:44:11 PST 2014


#42718: certsync fails to verify macports.org certificate
--------------------------+-----------------------
 Reporter:  ryandesign@…  |      Owner:  landonf@…
     Type:  defect        |     Status:  new
 Priority:  Normal        |  Milestone:
Component:  ports         |    Version:  2.2.1
 Keywords:                |       Port:  certsync
--------------------------+-----------------------
 We recently got a new SSL certificate for macports.org, from a different
 organization, and certsync fails to verify it confirmed on multiple
 machines and OS X versions:

 {{{
 $ sudo port -v sync
 --->  Updating the ports tree
 Synchronizing local ports tree from file:///Users/rschmidt/macports/dports
 Updating '/Users/rschmidt/macports/dports':
 svn: E230001: Unable to connect to a repository at URL
 'https://svn.macports.org/repository/macports/trunk'
 svn: E230001: Server SSL certificate verification failed: certificate has
 expired
 Command failed: /opt/local/bin/svn update --non-interactive
 /Users/rschmidt/macports/dports
 Exit code: 1
 }}}

 {{{
 $ curl https://www.macports.org/
 curl: (60) SSL certificate problem: certificate has expired
 More details here: http://curl.haxx.se/docs/sslcerts.html

 curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
 If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
 If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
 }}}

 {{{
 $ openssl s_client -connect www.macports.org:443 -CAfile
 /opt/local/etc/openssl/cert.pem
 CONNECTED(00000004)
 depth=2 C = BE, O = GlobalSign nv-sa, OU = Root CA, CN = GlobalSign Root
 CA
 verify error:num=10:certificate has expired
 notAfter=Jan 28 12:00:00 2014 GMT
 verify return:0
 }}}

 Using curl-ca-bundle instead of certsync, there is no problem.

 Analysis from Rainer:

 > I see in Keychain there are two certificates named "GlobalSign Root CA",
 and the one used here expired in January 2014, while the other one would
 be valid until January 2028. It's certainly using the wrong certificate,
 but I don't know yet why that happens.
 >
 > Maybe certsync compares them by name in a dictionary instead of using a
 unique key identifier and that mixes them up?

-- 
Ticket URL: <https://trac.macports.org/ticket/42718>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list