All Projects → dlangille → anvil

dlangille / anvil

Licence: BSD-2-Clause license
Tools for distributing ssl certificates

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to anvil

ght-acme.sh
Shell script to sign certificate by the letsencrypt CA
Stars: ✭ 31 (+6.9%)
Mutual labels:  certificate, acme, ssl-certificates
qiniu-auto-cert
七牛 CDN 证书自动化工具
Stars: ✭ 20 (-31.03%)
Mutual labels:  certificate, acme, cert
Lettuceencrypt
Free, automatic HTTPS certificate generation for ASP.NET Core web apps
Stars: ✭ 939 (+3137.93%)
Mutual labels:  certificate, acme
Certbot
Certbot is EFF's tool to obtain certs from Let's Encrypt and (optionally) auto-enable HTTPS on your server. It can also act as a client for any other CA that uses the ACME protocol.
Stars: ✭ 28,541 (+98317.24%)
Mutual labels:  certificate, acme
django-ca
Django app providing a Certificate Authority
Stars: ✭ 106 (+265.52%)
Mutual labels:  certificate, acme
Ssl exporter
Exports Prometheus metrics for SSL certificates
Stars: ✭ 211 (+627.59%)
Mutual labels:  certificate, ssl-certificates
Dehydrated
letsencrypt/acme client implemented as a shell-script – just add water
Stars: ✭ 5,261 (+18041.38%)
Mutual labels:  certificate, acme
Certificaat
General-purpose ACME client
Stars: ✭ 88 (+203.45%)
Mutual labels:  certificate, acme
Rancher Letsencrypt
🐮 Rancher service that obtains and manages free SSL certificates from the Let's Encrypt CA
Stars: ✭ 318 (+996.55%)
Mutual labels:  certificate, ssl-certificates
Chef Acme
Chef cookbook to request SSL certificates at Let's Encrypt
Stars: ✭ 98 (+237.93%)
Mutual labels:  certificate, acme
Pki
The Dogtag Certificate System is an enterprise-class Certificate Authority (CA) which supports all aspects of certificate lifecycle management, including key archival, OCSP and smartcard management.
Stars: ✭ 97 (+234.48%)
Mutual labels:  certificate, acme
Docker Nginx Gunicorn Flask Letsencrypt
Boilerplate code for setting up Nginx + Gunicorn + Flask + automated LetsEncrypt certificates (https) using docker-compose.
Stars: ✭ 117 (+303.45%)
Mutual labels:  certificate, ssl-certificates
Lego
Let's Encrypt client and ACME library written in Go
Stars: ✭ 4,978 (+17065.52%)
Mutual labels:  certificate, acme
Posh Acme
ACME protocol client for obtaining certificates using Let's Encrypt (or other ACME compliant CA)
Stars: ✭ 425 (+1365.52%)
Mutual labels:  certificate, acme
Ssl Proxy
🔒 Simple zero-config SSL reverse proxy with real autogenerated certificates (LetsEncrypt, self-signed, provided)
Stars: ✭ 427 (+1372.41%)
Mutual labels:  certificate, ssl-certificates
Acme client
Java ACME Client application
Stars: ✭ 77 (+165.52%)
Mutual labels:  certificate, acme
Node Acme Lambda
Use AWS Lambda to manage SSL certificates for ACME providers like Let's Encrypt.
Stars: ✭ 120 (+313.79%)
Mutual labels:  certificate, acme
ACMECert
PHP client library for Let's Encrypt (ACME v2 - RFC 8555)
Stars: ✭ 83 (+186.21%)
Mutual labels:  certificate, acme
Crypt Le
Crypt::LE - Let's Encrypt / Buypass / ACME client and library in Perl for obtaining free SSL certificates (inc. generating RSA/ECC keys and CSRs). HTTP/DNS verification is supported out of the box, easily extended with plugins, easily dockerized.
Stars: ✭ 277 (+855.17%)
Mutual labels:  certificate, acme
Ssl Checker
Python script that collects SSL/TLS information from hosts
Stars: ✭ 94 (+224.14%)
Mutual labels:  certificate, ssl-certificates

anvil

Tools for distributing ssl certificates

Designed on FreeBSD, it uses fetch by default, but can also use wget or curl. Set FETCH_TOOL in the configuration file to either wget or curl. Any other value will invoke fetch.

It also uses sudo, with the goal of this running as non-root and only allowing the cp & mv via sudo.

These tools were designed with acme.sh & Let's Encrypt in mind, but they should with with any certificates generated by any means.

Relevant background:

  • The certificates are being generated via acme.sh in a centralized location.
  • certs are not generated where they are used.
  • Distribution of private keys is outside scope.
  • New certs are pulled by the servers/VMs/jails/etc which need them.

The steps to use this stuff:

The distribution of private keys is outside scope.

Overview of anvil use

Overview of anvil use

Before using:

mkdir /var/db/anvil && chown USER:GROUP /var/db/anvil

Where USER & GROUP is the user which will be invoking this script. We suggest anvil:anvil

Said user will also need sudo rights to cp and mv within CERT_DST.

Default configuration files are in /usr/local/etc/anvil/

Variables which can be set in cert-shifter.conf:

CERT_SRC="/var/db/acme/certs"
CERT_DST_ROOT="/var/db/certs-for-rsync"
CERT_DST_CERTS="${CERT_DST_ROOT}/certs"
TMP="${CERT_DST_ROOT}/tmp"

Variables which can be set in cert-puller.conf:

CERT_DST="/usr/local/etc/ssl"
CERT_SERVER="https://certs.example.org/certs"
MYCERTS="example.com"
SERVICES="apache24"
SERVICES_RELOAD="postgresql"
SERVICES_RESTART="postfix"
DOWNLOAD_DIR="/var/db/check-for-new-certs"
USER_AGENT="--user-agent='anvil-cert-puller'"
FETCH="/usr/bin/fetch --mirror --quiet --user-agent=${USER_AGENT}'"
CURL="/usr/local/bin/curl --silent --user-agent '${USER_AGENT}' --remote-time"
WGET="/usr/local/bin/wget --quiet --user-agent='${USER_AGENT}'"
FETCH_OPTIONS="-4"
CURL_OPTIONS="-4"
WGET_OPTIONS="-4"

After getting new certs, services need to be restarted/reloaded.

  • Services which can be restarted/reloaded by SERVICES: apache22, apache24, dovecot, mosquitto, nginx, postfix, postgresql

  • Services which can be restarted by SERVICES_RESTART: unlimited, anything you want.

  • Services which can be reloaded by SERVICES_RELOAD: unlimited, anything you want.

To use wget, set FETCH_TOOL="wget" in cert-puller.conf To use curl, set FETCH_TOOL="curl" in cert-puller.conf To use fetch, set FETCH_TOOL to any other value, or remove it from the file.

Yep, lots to work on here.

Certificate fingerprints for Postfix

If you need certificate fingerprints, say for Postfix, see also https://github.com/dlangille/fingerprint-shifter

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].