acme-lw-d 0.1.1
A lightweight ACME protocol client written in the D computer language
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
Lightweight ACME Client written in the D computer language
This project is yet another Let's Encrypt client. It has the following properties.
- It is written in the D computer language.
- WIP: The main artifact is a D static library.
- A commandline tool provides all operations of RFC855 as best as possible
- Tries to be a good example of D programming. It hast ddoc and unittest support.
Building and Installing
Building requires dub, openssl and curl. On Debian based systems this will install them.
apt-get install dub libssl-dev libcurl4-gnutls-dev
On Red Hat based systems this will do it.
yum install dub openssl-devel curl-devel
Workaround for problems with dub:openssl package
cd <somepath>
git clone https://github.com/cschlote/openssl.git
cd openssl && git checkout fixup_EVP_MD_CTX_new
dub add-local <somepath>/openssl
To build and install run:
dub build
To run the unittests:
dub test
To run against the Let's Encrypt staging environment generate your makefiles with this. (NOT WORKING YET)
dub build -c acme-staging
Let's Encrypt Credentials
To use any Let's Encrypt client you need to sign requests with your Let's Encrypt's account's private key. This library uses a private key in PEM format. If you want to use an existing Let's Encrypt private key, it's in JWK format. The acme-tiny library has good documentation on how to convert it.
Create a SSL key pair with:
openssl genrsa -out key.pem 2048
Command Line Client
The command line client is run as follows.
./acme-lw-d -k key.pem -d honk.com -d bubu.com -y -c "mailto:[email protected]"
./acme-lw-d -h
Library API
The API of the library is documented in its source file. The command line client source provides an example of how it's used.
All methods report errors by throwing some exception, which will normally be an instance of acme.AcmeException.
ToDOs
Mandatory:
- Implement 7.4. Applying for Certificate Issuance
Optional:
- Implement 7.3.4. External Account Binding
- Implement 7.3.5. Account Key Rollover
- Implement 7.3.6. Account Deactivation
- Implement 7.4.1. Pre-authorization
Nice to have:
- Create a new SSL private/public key pair in program, if not existent and allowed by cmdline arg. It avoids the use of the openssl command client (see above). Should create only supported keys.
- Split code into a library package and an optional CLI client, which uses the library package.
- Registered by Carsten Schlote
- 0.1.1 released 5 years ago
- cschlote/acme-lw-d
- proprietary
- Copyright © 2019, Carsten Schlote
- Authors:
- Dependencies:
- openssl
- Versions:
-
0.2.0 2019-Jul-07 0.1.9 2019-Jun-25 0.1.8 2019-Jun-23 0.1.7 2019-Jun-10 0.1.6 2019-Jun-10 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
0 downloads this month
-
29 downloads total
-
- Score:
- 1.2
- Short URL:
- acme-lw-d.dub.pm