Acmex v0.2.0 Acmex View Source

This module provides the main API to interface with Acme.

Link to this section Summary

Link to this section Types

Specs

account_reply() ::
  {:ok, Acmex.Resource.Account.t()} | {:error, HTTPoison.Response.t()}

Specs

certificate_reply() :: {:ok, String.t()} | {:error, HTTPoison.Response.t()}
Link to this type

certificate_revocation_reply()

View Source

Specs

certificate_revocation_reply() :: :ok | {:error, HTTPoison.Response.t()}

Specs

challenge_reply() ::
  {:ok, Acmex.Resource.Challenge.t()} | {:error, HTTPoison.Response.t()}

Specs

on_start_link() ::
  {:ok, pid()}
  | :ignore
  | {:error, {:already_started, pid()} | term()}
  | {:error, String.t()}

Specs

order_reply() ::
  {:ok, Acmex.Resource.Order.t()} | {:error, HTTPoison.Response.t()}

Link to this section Functions

Specs

child_spec(list()) :: Supervisor.child_spec()
Link to this function

finalize_order(order, csr, timeout \\ 5000)

View Source

Specs

Finalizes the order.

Parameters

  • order: The order resource with status "pending".
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.finalize_order(%Order{status: "pending"})
{:ok, %Order{status: "processing"}}
Link to this function

get_account(timeout \\ 5000)

View Source

Specs

get_account(pos_integer()) :: account_reply()

Gets an existing account.

An account will only be returned if the current private key has been used to create a new account.

Parameters

  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.get_account()
{:ok, %Account{...}}
Link to this function

get_certificate(order, timeout \\ 5000)

View Source

Specs

Gets the certificate.

The format of the certificate is application/pem-certificate-chain.

Parameters

  • order: The order resource with status "valid".
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.get_certificate(%Order{status: "valid"})
{:ok, "-----BEGIN CERTIFICATE-----..."}
Link to this function

get_challenge(url, timeout \\ 5000)

View Source

Specs

get_challenge(String.t(), pos_integer()) :: challenge_reply()

Gets an existing challenge.

Parameters

  • url: The url attribute of the challenge resource.
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.get_challenge(%Challenge{...}.url)
{:ok, %Challenge{...}}
Link to this function

get_challenge_response(challenge, timeout \\ 5000)

View Source

Specs

get_challenge_response(Acmex.Resource.Challenge.t(), pos_integer()) ::
  {:ok, map()}

Gets the challenge response.

Parameters

  • challenge: The challenge resource.
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.get_challenge_response(%Challenge{token: "bZxymov025OYA4DkGSI5XPKdAW9V93eKoDZZ56AC3cI", type: "dns-01"})
{:ok,
 %{
   key_authorization: "AgemQZ-WIft7VwWljRb3l_nkyigEILfRzzx5E6HdFyY",
   record_name: "_acme-challenge",
   record_type: "TXT"
 }}

iex> Acmex.get_challenge_response(%Challenge{token: "oR3Xwj4GgXIxUtKMUfmVf4hmRFehAIgSsg7oXD_PCEw", type: "http-01"})
{:ok,
 %{
   content_type: "text/plain",
   filename: ".well-known/acme-challenge/oR3Xwj4GgXIxUtKMUfmVf4hmRFehAIgSsg7oXD_PCEw",
   key_authorization: "oR3Xwj4GgXIxUtKMUfmVf4hmRFehAIgSsg7oXD_PCEw.5zmJUVWaucybUNJSLeCaO9D_cauS5QiwA92KTiY_vNc"
 }}
Link to this function

get_order(url, timeout \\ 5000)

View Source

Specs

get_order(String.t(), pos_integer()) :: order_reply()

Gets an existing order.

Parameters

  • url: The url attribute of the order resource.
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.get_order(order.url)
{:ok, %Order{...}}
Link to this function

new_account(contact, tos, timeout \\ 5000)

View Source

Specs

new_account([String.t()], boolean(), pos_integer()) :: account_reply()

Creates a new account.

Parameters

  • contact: A list of URLs that the ACME can use to contact the client for issues related to this account.
  • tos: Terms Of Service Agreed indicates the client's agreement with the terms of service.
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.new_account(["mailto:info@example.com"], true)
{:ok, %Account{...}}
Link to this function

new_order(identifiers, timeout \\ 5000)

View Source

Specs

new_order([String.t()], pos_integer()) :: order_reply()

Creates a new order.

Parameters

  • identifiers: A list of domains.
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.new_order(["example.com"])
{:ok, %Order{...}}
Link to this function

revoke_certificate(certificate, reason_code \\ 0, timeout \\ 5000)

View Source

Specs

Revokes a certificate.

Parameters

  • certificate: The certificate to be revoked.
  • reason: Optional revocation reason code.
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.revoke_certificate("-----BEGIN CERTIFICATE-----...", 0)
:ok

Specs

start_link(keyword()) :: on_start_link()

Starts the client with a private key.

If the private key path does not exists, the client will not start.

Parameters

  • keyfile: The path to an RSA key.
  • name: Optional name for the Client.

Examples

iex> Acmex.start_link(keyfile: "test/support/fixture/account.key")
{:ok, #PID<...>}

iex> Acmex.start_link(key: "-----BEGIN RSA PRIVATE KEY-----...", name: :acmex_optional_name)
{:ok, #PID<...>}
Link to this function

validate_challenge(challenge, timeout \\ 5000)

View Source

Specs

Validates the challenge.

Parameters

  • challenge: The challenge resource.
  • timeout: Process timeout in milliseconds. Default: 5_000.

Examples

iex> Acmex.validate_challenge(%Challenge{...})
{:ok, %Challenge{...}}