You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Isaac 9f236bfc6c Use latest JWS code from x/crypto/acme 2 years ago
examples Update examples to use v3 major version 2 years ago
.gitignore Tests: generate coverage reports and upload to codecov 3 years ago
.travis.yml TravisCI: Use Makefile examples target 2 years ago
LICENSE Initial commit 4 years ago
Makefile Update examples to use v3 major version 2 years ago
README.md README: fix small typo (#13) 2 years ago
THIRD-PARTY Remove square/go-jose dependency 4 years ago
account.go Use latest JWS code from x/crypto/acme 2 years ago
account_test.go client: remove UpdateAccount termsOfServiceAgreed param. 2 years ago
acme.go Use latest JWS code from x/crypto/acme 2 years ago
acme_test.go Goimports all files 3 years ago
authorization.go Remove explicit references to specific draft acme versions 3 years ago
authorization_test.go Pebble supports deactivating auths 3 years ago
autocert.go Move autocert into main acme package 3 years ago
autocert_test.go autocert test: fixes for pebble management interface integration 2 years ago
certificate.go FetchCertificate: Use POST-AS-GET mechanism 3 years ago
certificate_test.go FetchCertificate: Use POST-AS-GET mechanism 3 years ago
challenge.go Remove explicit references to specific draft acme versions 3 years ago
challenge_test.go Add extra tests for checking challenge status 3 years ago
go.mod Bump module version to 3 after #11 2 years ago
jws.go Use latest JWS code from x/crypto/acme 2 years ago
jws_test.go Use latest JWS code from x/crypto/acme 2 years ago
misc_test.go FetchCertificate: Use POST-AS-GET mechanism 3 years ago
nonce.go Move fetching new nonces from nonce stack into the client 4 years ago
nonce_test.go Move fetching new nonces from nonce stack into the client 4 years ago
options.go Add option for custom http client 3 years ago
options_test.go Add option for custom http client 3 years ago
order.go Goimports all files 3 years ago
order_test.go Goimports all files 3 years ago
problem.go Remove explicit references to specific draft acme versions 3 years ago
problem_test.go Store the acme.Directory internally on Client and access via "immutable" client.Directory() 4 years ago
types.go Add links to RFC documentation for types 2 years ago
utility_test.go No need to set default ip address for pebble-challtestsrv 3 years ago

README.md

eggsampler/acme

GoDoc Build Status codecov.io

About

eggsampler/acme is a Go client library implementation for RFC8555 (previously ACME v2), specifically for use with the Let's Encrypt™ service.

The library is designed to provide a zero external dependency wrapper over exposed directory endpoints and provide objects in easy to use structures.

Requirements

A Go version of at least 1.11 is required as this repository is designed to be imported as a Go module.

Usage

Simply import the module into a project,

import "github.com/eggsampler/acme/v3"

Note the /v3 major version at the end. Due to the way modules function, this is the major version as represented in the go.mod file and latest git repo semver tag. All functions are still exported and called using the acme package name.

Examples

A simple certbot-like example is provided in the examples/certbot directory. This code demonstrates account registration, new order submission, fulfilling challenges, finalising an order and fetching the issued certificate chain.

An example of how to use the autocert package is also provided in examples/autocert.

Tests

The tests can be run against an instance of boulder or pebble.

Challenge fulfilment is designed to use the new challtestsrv server present inside boulder and pebble which responds to dns queries and challenges as required.

To run tests against an already running instance of boulder or pebble, use the test target in the Makefile.

Some convenience targets for launching pebble/boulder using their respective docker compose files have also been included in the Makefile.