Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

On macOS populate root CAs via system cert store #5886

Merged
merged 2 commits into from
Oct 8, 2018

Conversation

spoonincode
Copy link
Contributor

Previously on macOS the HTTPS root CAs there were trusted was loaded from the /private/etc/ssl/cert.pem file. This is

  1. Not documented or supported
  2. Out of date
  3. Doesn't honor distrust of certs
  4. Doesn't know of user added certs in the keychain

Now, populate the root CAs from the keychain. This solves all of the above.

This takes affect for both cleos and the http_client used by producer_plugin for out-of-process keosd signing. Note the behavior for http_client has markedly changed: previously it would not consider any root CAs other then the one the user explicitly provided. Now on macOS and Linux it will consider the system certificate store. This behavior can be reverted if it is controversial.

Much of the logic behind the macOS keychain cert loading was taken from golang's library. License included as appropriate.

Goes with EOSIO/fc#26 -- as usual please approve & merge that one first and then the submodule here will be updated.

Fixes #2556

Previously on macOS the HTTPS root CAs there were trusted was loaded from the /private/etc/ssl/cert.pem file. This is

1. Not documented or supported
2. Out of date
3. Doesn't honor distrust of certs
4. Doesn't know of user added certs in the keychain

Now, populate the root CAs from the keychain. This solves all of the above.

This takes affect for both cleos and the http_client used by producer_plugin for out-of-process keosd signing. Note the behavior for http_client has markedly changed: previously it would not consider any root CAs other then the one the user explicitly provided. Now on macOS and Linux it will consider the system certificate store. This behavior can be reverted if it is controversial.

Much of the logic behind the macOS keychain cert loading was taken from golang's library. License included as appropriate.
@spoonincode spoonincode merged commit d612ab7 into develop Oct 8, 2018
@spoonincode spoonincode deleted the macos_proper_https branch October 8, 2018 02:34
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants