{"id":15647598,"url":"https://github.com/drdaeman/le_client","last_synced_at":"2025-03-29T23:25:30.188Z","repository":{"id":62575472,"uuid":"57074358","full_name":"drdaeman/le_client","owner":"drdaeman","description":"Yet another ACME/Let's Encrypt client","archived":false,"fork":false,"pushed_at":"2016-07-21T19:30:28.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-09T02:46:14.585Z","etag":null,"topics":["letsencrypt"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drdaeman.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-04-25T20:31:54.000Z","updated_at":"2017-02-14T20:42:07.000Z","dependencies_parsed_at":"2022-11-03T18:48:42.894Z","dependency_job_id":null,"html_url":"https://github.com/drdaeman/le_client","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drdaeman%2Fle_client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drdaeman%2Fle_client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drdaeman%2Fle_client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drdaeman%2Fle_client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drdaeman","download_url":"https://codeload.github.com/drdaeman/le_client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246258125,"owners_count":20748519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["letsencrypt"],"created_at":"2024-10-03T12:20:09.142Z","updated_at":"2025-03-29T23:25:30.167Z","avatar_url":"https://github.com/drdaeman.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"=========\nle_client\n=========\n\nThis is yet another ACME/Let's Encrypt client.\nIt's inspired by acme-tiny, but does things differently.\n\n.. image:: https://travis-ci.org/drdaeman/le_client.svg?branch=master\n    :target: https://travis-ci.org/drdaeman/le_client\n\n\nRequirements\n------------\n\n- The client is written in Python 3.\n  It's incompatible with Python 2.x at the moment.\n\n- There are no dependencies on any third-party\n  Python modules. The code should run fine on\n  a bare Python setup, without anything from PyPI.\n\n- You need ``openssl`` command-line executable available\n  for use in ``PATH``. It's used for keys and certificate\n  request parsing.\n\n\nFeatures and limitations\n------------------------\n\n- Does not know anything about servers or software.\n  Its only purpose is to obtain a signed certificate.\n\n- Currently, the only supported challenge type is\n  ``http-01`` (webroot).\n\n- Does not require any fancy privileges.\n\n  It needs to access the certificate request, have write\n  access to ``/.well-known/acme-challenge/`` and can output\n  the obtained certificate to a file or on stdout.\n\n- It works with either local account key file,\n  or can use a special remote service that can sign\n  requests.\n\n  That was the primary reason why I wrote my own client:\n  I didn't want to keep an account's private key\n  on the untrusted machine.\n\n- Currently, it only supports EC-256 account keys.\n  It's easy to add other curve sizes and RSA support,\n  but I'm lazy.\n\n- It's meant to be either usable as a standalone\n  command-line utility, or as a simple Python library.\n\n\nRemote account key protocol\n---------------------------\n\nThis client supports a special mode of operation where\nit doesn't have a local account private key, but asks\na remote service to sign whatever payload it needs.\n\nA remote service is located at a single URL, served\nover HTTPS. To authenticate the client, CLI currently\nsupports only HTTP Basic Authentication.\n\nTo sign, we send POST request to a given URL,\nappending ``nonce`` query parameter, and sending\nthe payload as the POST body. We expect the server\nto answer with 200 OK an return a JWS as a response.\n\nThat's the whole protocol description.\n\n\nLicense\n-------\n\nCopyright (c) 2016, Aleksey Zhukov\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nSee ``LICENSE`` file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrdaeman%2Fle_client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrdaeman%2Fle_client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrdaeman%2Fle_client/lists"}