GithubHelp home page GithubHelp logo

hkjn / acme Goto Github PK

View Code? Open in Web Editor NEW

This project forked from google/acme

0.0 3.0 0.0 86 KB

ACME Go client library and a command line tool without 3rd party deps!

License: Apache License 2.0

Go 100.00%

acme's Introduction

acme

ACME-complient Go client library and a command line tool. Neither has 3rd party dependencies. Also, see https://letsencrypt.org.

Contents of this repo:

  • / - ACME client Go package. See godoc for acme package. The package has been imported to golang.org/x/crypto/acme/internal/acme. I will keep github.com/google/acme package mirroring crypto/acme/internal/acme until it becomes exported as golang.org/x/crypto/acme.
  • /cmd/acme/ - cli tool, similar to the official letsencrypt.

This package is a work in progress and makes no API stability promises.

command line tool usage

Quick install with go get -u github.com/google/acme/cmd/acme.

  1. You need to have a user account, registered with the CA. This is represented by an RSA private key.

The easiest is to let acme tool generate it for you:

    acme reg mailto:[email protected]

If you already have a key or want to generate one manually:

    mkdir -p ~/config/acme
    openssl genrsa -out ~/config/acme/account.pem 2048
    acme reg mailto:[email protected]

The latter version assumes that default acme config dir is ~/config/acme. Yours may vary. Check with acme help reg.

The "mailto:[email protected]" in the example above is a contact argument. While some ACME CA may let you register without providing any contact info, it is recommended to use one. For instance a CA might need to notify cert owners with an update.

  1. Agree with the ACME CA Terms of Service.

Before requesting your first certificate, you may need to agree with the terms of the CA. You can check the status of our account with:

    acme whoami

and look for "Accepted: ..." line. If it says "no", check CA's terms document provided as a link in "Terms: ..." field and agree by executing:

    acme update -update
  1. Request a new certificate for your domain.

The easiest way to do this is:

    acme cert example.com

The above command will generate a new certificate key (unless one already exists), and send a certifcate request. The location of the output files is ~/.config.acme, but depends on your environment. Check with acme help cert.

If you don't want auto-generated cert key, one can always be generated upfront:

    openssl genrsa -out cert.key 2048

in which case the cert command will look something like this:

    acme cert -k cert.key example.com

Note that for certificate request command to succeed, it needs to be executed in a way allowing for resolving authorization challenges (domain ownership proof). This typically means the command should be executed on the same host the domain is served from.

If the latter is not possible, use -manual flag and follow the instructions:

    acme cert -manual example.com

License

(c) Google, 2015. Licensed under Apache-2 license.

acme's People

Contributors

kkirsche avatar mbwalas avatar sgomes avatar x1ddos avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.