All Projects → ITronic → itr-acme-client

ITronic / itr-acme-client

Licence: GPL-3.0 License
ITronic ACME Client Library

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to itr-acme-client

letsencrypt-manual-hook
Allows you to use dehydrated (a Let's Encrypt/Acme Client) and DNS challenge response with a DNS provider that requires manual intervention
Stars: ✭ 61 (+190.48%)
Mutual labels:  letsencrypt, acme-client
ACMECert
PHP client library for Let's Encrypt (ACME v2 - RFC 8555)
Stars: ✭ 83 (+295.24%)
Mutual labels:  letsencrypt, acme-client
Acme.sh
A pure Unix shell script implementing ACME client protocol
Stars: ✭ 24,723 (+117628.57%)
Mutual labels:  letsencrypt, acme-client
yaac
Yet another ACME client: a decoupled LetsEncrypt client
Stars: ✭ 138 (+557.14%)
Mutual labels:  letsencrypt, acme-client
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 (+135809.52%)
Mutual labels:  letsencrypt, acme-client
ght-acme.sh
Shell script to sign certificate by the letsencrypt CA
Stars: ✭ 31 (+47.62%)
Mutual labels:  letsencrypt, acme-client
cfn-api-gateway-custom-domain
API Gateway custom domains as CloudFormation resources, backed by Let's Encrypt
Stars: ✭ 17 (-19.05%)
Mutual labels:  letsencrypt
ubios-cert
Manage SSL / TLS certificates with acme.sh (Let's Encrypt, ZeroSSL) for Ubiquiti UbiOS firmwares
Stars: ✭ 17 (-19.05%)
Mutual labels:  letsencrypt
kong-plugin-acme
Let's Encrypt and ACMEv2 integration with Kong - this plugin has been moved into https://github.com/Kong/kong, please open issues and PRs in that repo
Stars: ✭ 36 (+71.43%)
Mutual labels:  letsencrypt
leproxy
https reverse proxy with automatic Letsencrypt usage for multiple hostnames/backends
Stars: ✭ 89 (+323.81%)
Mutual labels:  letsencrypt
Excision-Mail
Fullstack, security focused mailserver based on OpenSMTPD for OpenBSD using ansible
Stars: ✭ 108 (+414.29%)
Mutual labels:  letsencrypt
lsio-docker-mods
A docker mod for the linuxserver/letsencrypt container adding a python script to send geo location metrics to InfluxDB
Stars: ✭ 21 (+0%)
Mutual labels:  letsencrypt
gollum-galore
🍬 Gollum wiki with lots of sugar 🍬
Stars: ✭ 14 (-33.33%)
Mutual labels:  letsencrypt
freshcerts
ACME certificate protocol (Let's Encrypt) proxy client with a dashboard and monitoring
Stars: ✭ 59 (+180.95%)
Mutual labels:  letsencrypt
django-yadpt-starter
Yet Another Django Project Template skeleton for Django projects
Stars: ✭ 28 (+33.33%)
Mutual labels:  letsencrypt
letsencrypt-www
Probably the easiest way to create | renew | deploy certificate
Stars: ✭ 27 (+28.57%)
Mutual labels:  letsencrypt
letsencrypt-inwx
A small cli utility for automating the letsencrypt dns-01 challenge for domains hosted by inwx.
Stars: ✭ 43 (+104.76%)
Mutual labels:  letsencrypt
aks-terraform-helm
Showcase for Azure, AKS, Terraform, Helm and Let's Encrypt
Stars: ✭ 23 (+9.52%)
Mutual labels:  letsencrypt
acm
Automatic wildcard certificate management for Cloudflare and Heroku
Stars: ✭ 40 (+90.48%)
Mutual labels:  letsencrypt
dehydrated-email-notify-hook
A plugin for dehydrated to notify you by email when a new DNS record needs to be created. This is useful when your DNS provider has no API and does not support DDNS.
Stars: ✭ 19 (-9.52%)
Mutual labels:  letsencrypt
ITronic ACME Client
====================

This library implements the ACME 1.0 draft 10 protocol (https://tools.ietf.org/html/draft-ietf-acme-acme-10)

Features
---------------------

* ACMEv2 support
* dns-01 challenge support
* http-01 challenge support
* Wildcard support
* Signed Certificate Timestamp (SCT) registration support

Requirements
---------------------

* PHP 7.1+
* Openssl 1.0+
* Curl

Requirements for dns-01
---------------------

* Dig
* Programm execution allowed


Usage
---------------------

We have some examples in the examples folders with comments.

Most simple way is to execute simple.php, but you have to modify some variables in it so it reflect your local settings.

    # php simple.php

Should result in something like this:

2017-09-06 22:30:16 [debug] Start initialisation.
2017-09-06 22:30:16 [debug] Initialisation done.
2017-09-06 22:30:16 [info] Starting account registration
2017-09-06 22:30:16 [info] Account already exists
2017-09-06 22:30:16 [info] Starting certificate generation for domains
2017-09-06 22:30:16 [debug] Check local access for domain: searx.at
2017-09-06 22:30:16 [debug] Try saving local to: /var/www/.well-known/acme-challenge/local_check.txt
2017-09-06 22:30:16 [debug] Check local access for domain: www.searx.at
2017-09-06 22:30:16 [debug] Try saving local to: /var/www/.well-known/acme-challenge/local_check.txt
2017-09-06 22:30:16 [info] Check local successfully completed!
2017-09-06 22:30:16 [info] Requesting challenges for domain searx.at
2017-09-06 22:30:16 [info] Start signing request
2017-09-06 22:30:16 [info] Sending signed request to https://acme-staging.api.letsencrypt.org/acme/new-authz
2017-09-06 22:30:17 [info] Found challenge for Domain searx.at
2017-09-06 22:30:17 [info] Token is available at http://searx.at/.well-known/acme-challenge/TASdoXhWutv0It_K_CjoZRQdzwh3HtGHYfqL60Wor6Y
2017-09-06 22:30:17 [info] Notify CA that the challenge is ready
2017-09-06 22:30:17 [info] Start signing request
2017-09-06 22:30:17 [info] Sending signed request to https://acme-staging.api.letsencrypt.org/acme/challenge/VMS56QF0MPPdRmBTgvs1UxqTK9yzPWjRdhXYkDvCJV4/56776363
2017-09-06 22:30:18 [info] Verification status: valid
2017-09-06 22:30:18 [info] Requesting challenges for domain www.searx.at
2017-09-06 22:30:18 [info] Start signing request
2017-09-06 22:30:18 [info] Sending signed request to https://acme-staging.api.letsencrypt.org/acme/new-authz
2017-09-06 22:30:18 [info] Found challenge for Domain www.searx.at
2017-09-06 22:30:18 [info] Token is available at http://www.searx.at/.well-known/acme-challenge/h7I_MhujRTYXek36l8rkCwdfdcChDSKDJXSkeoem1Kg
2017-09-06 22:30:18 [info] Notify CA that the challenge is ready
2017-09-06 22:30:18 [info] Start signing request
2017-09-06 22:30:18 [info] Sending signed request to https://acme-staging.api.letsencrypt.org/acme/challenge/Y5kAEt1j4Trke72xptdhYyodi_SK0RzsBqikWQg-91Y/56805310
2017-09-06 22:30:19 [info] Verification status: valid
2017-09-06 22:30:19 [info] Starting key generation.
2017-09-06 22:30:20 [info] Key generation finished.
2017-09-06 22:30:20 [info] Start signing request
2017-09-06 22:30:20 [info] Sending signed request to https://acme-staging.api.letsencrypt.org/acme/new-cert
2017-09-06 22:30:21 [info] Certificate generation complete.
2017-09-06 22:30:21 [info] Load chain cert from: https://acme-staging.api.letsencrypt.org/acme/issuer-cert
2017-09-06 22:30:21 [notice] Successfuly created certificate for domain: searx.at
2017-09-06 22:30:21 [notice] Successfuly created certificate for domain: www.searx.at
2017-09-06 22:30:21 [info] Diffie-Hellman Parameters already exists.
2017-09-06 22:30:21 [info] Certificate generation finished.
Array
(
    [RSA] => Array
        (
            [cert] => -----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----

            [chain] => -----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----

            [key] => -----BEGIN PRIVATE KEY-----
MII...
-----END PRIVATE KEY-----

            [pem] => -----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MII...
-----END PRIVATE KEY-----
-----BEGIN DH PARAMETERS-----
MII...
-----END DH PARAMETERS-----

        )

    [EC] => Array
        (
            [cert] => -----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----

            [chain] => -----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----

            [key] => -----BEGIN EC PRIVATE KEY-----
MHc...
-----END EC PRIVATE KEY-----

            [pem] => -----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MII...
-----END CERTIFICATE-----
-----BEGIN EC PRIVATE KEY-----
MHc...
-----END EC PRIVATE KEY-----
-----BEGIN DH PARAMETERS-----
MII...
-----END DH PARAMETERS-----

        )

    [dh] => -----BEGIN DH PARAMETERS-----
MII...
-----END DH PARAMETERS-----

)

The simpleSaveToDir.php examples saves the certificates to File.

Extend
---------------------

If you like to use your own deployment function for challenges you can
extend the class itrAcmeChallengeManagerClass or one of it's children.

You find a example in examples/customDnsChallengeDeploy.php

Limitations
---------------------

* No revocation function
* Only dns-01 and http-01 challenge support

Links
---------------------

* https://github.com/ITronic/itr-acme-client

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].