Acmex v0.2.0 Acmex View Source
This module provides the main API to interface with Acme.
Link to this section Summary
Functions
Finalizes the order.
Gets an existing account.
Gets the certificate.
Gets an existing challenge.
Gets the challenge response.
Gets an existing order.
Creates a new account.
Creates a new order.
Revokes a certificate.
Starts the client with a private key.
Validates the challenge.
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()}
Specs
certificate_revocation_reply() :: :ok | {:error, HTTPoison.Response.t()}
Specs
challenge_reply() :: {:ok, Acmex.Resource.Challenge.t()} | {:error, HTTPoison.Response.t()}
Specs
Specs
order_reply() :: {:ok, Acmex.Resource.Order.t()} | {:error, HTTPoison.Response.t()}
Link to this section Functions
Specs
child_spec(list()) :: Supervisor.child_spec()
Specs
finalize_order(Acmex.Resource.Order.t(), String.t(), pos_integer()) :: challenge_reply()
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"}}
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{...}}
Specs
get_certificate(Acmex.Resource.Order.t(), pos_integer()) :: certificate_reply()
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-----..."}
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{...}}
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"
}}
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{...}}
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{...}}
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{...}}
revoke_certificate(certificate, reason_code \\ 0, timeout \\ 5000)
View SourceSpecs
revoke_certificate(String.t(), pos_integer(), pos_integer()) :: certificate_revocation_reply()
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<...>}
Specs
validate_challenge(Acmex.Resource.Challenge.t(), pos_integer()) :: challenge_reply()
Validates the challenge.
Parameters
- challenge: The challenge resource.
- timeout: Process timeout in milliseconds. Default: 5_000.
Examples
iex> Acmex.validate_challenge(%Challenge{...})
{:ok, %Challenge{...}}