Certificate Authorities: curl-ca-bundle, certsync, keychain

Landon Fuller landonf at macports.org
Mon May 13 18:39:56 PDT 2013


Howdy,

Over the weekend I whipped up (and added a port for) 'certsync'; it's a small tool that fetches all trusted certificates from the Mac OS X system keychain, and then spits them out as OpenSSL-readable pem-encode certificate bundle.

The goal was to provide a replacement for curl-ca-bundle with the following benefits:
	- Uses the CAs Apple provides -- that way MacPorts doesn't have to be in the business of distributing CA certificates.
	- Also includes any custom CAs that the user has added. This is the case for many people who use internal CAs to sign certificates for their corporate (or personal) services.
	- Automatically updates (if the launchd item is loaded) when the System Keychain(s) or trust settings are modified. 

There are a few gotchas that I could use input on, however:
	- curl-ca-bundle currently lays claim to ${prefix}/etc/openssl/cacerts.pem. This conflicts with certsync, and there's no way to have both installed at the same time.
	- A small number of ports directly depend on curl-ca-bundle to ensure that valid CA certificates are available.
	- certsync can only keep the cert.pem file up-to-date if the launchd item is enabled. Ideally that would be done by default, but that's not currently supported.

Any thoughts on how to proceed?

I'm currently using certsync locally; to install, you'll have to:
	sudo port -f deactivate curl-ca-bundle
	sudo port install certsync

-landonf


More information about the macports-dev mailing list