syscerts

package module
v0.0.0-...-1f7ee1d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 30, 2020 License: Apache-2.0 Imports: 3 Imported by: 0

README

syscerts

Gather local system certificates in Go via a public SystemRootsPool method.

What does this do?

Provide a way to gather local system certificates on different OS platforms.

How does it do it?

It uses the crypto/x509 package and provides a single public method called SystemRootsPool() to return a *x509.CertPool object.

How do you use it?
// gather CA certs
certpool := syscerts.SystemRootsPool()

// place them in an HTTP client for trusted SSL/TLS connections
tlsConfig := &tls.Config{RootCAs: certpool}
transport := &http.Transport{TLSClientConfig: tlsConfig}
client := &http.Client{Transport: transport}

// make a request
resp, err := client.Do(req)
Why even do it?

The crypto/x509 package already has a systemRootsPool method. The crypto/x509.systemRootsPool method is almost the same as github.com/jackspirou/syscerts.SystemRootsPool. The difference? The crypto/x509.systemRootsPool method is private so you cannot access it. :(

There are plans for the crypto/x509.systemRootsPool method to become public in Go 1.7. When this happens you might no longer need github.com/jackspirou/syscerts.SystemRootsPool.

The only reason you may still use this package after the Go 1.7 release might be for the Mac OSX System Keychain certs which are not included in the crypto/x509 package. Relevant lines below:

Find more about this Go issue here: https://github.com/golang/go/issues/13335

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SystemRootsPool

func SystemRootsPool() *x509.CertPool

SystemRootsPool attempts to find and return a pool of all all installed system certificates.

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL