{"id":13792928,"url":"https://github.com/acmephp/acmephp","last_synced_at":"2025-05-12T17:31:33.378Z","repository":{"id":8838595,"uuid":"59910490","full_name":"acmephp/acmephp","owner":"acmephp","description":"Let's Encrypt or ZeroSSL ACME Command Line client written in PHP","archived":false,"fork":false,"pushed_at":"2024-11-15T14:26:01.000Z","size":845,"stargazers_count":611,"open_issues_count":22,"forks_count":106,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-11-15T15:31:55.751Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://acmephp.github.io","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acmephp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-28T19:11:16.000Z","updated_at":"2024-11-15T14:26:07.000Z","dependencies_parsed_at":"2023-12-15T19:45:29.793Z","dependency_job_id":"dc395564-1ae9-4e4f-9248-a9a1edd2d79b","html_url":"https://github.com/acmephp/acmephp","commit_stats":{"total_commits":242,"total_committers":32,"mean_commits":7.5625,"dds":0.5371900826446281,"last_synced_commit":"192a15cbc5be12572dcbdf435ddae74ffb96ded2"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acmephp%2Facmephp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acmephp%2Facmephp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acmephp%2Facmephp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acmephp%2Facmephp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acmephp","download_url":"https://codeload.github.com/acmephp/acmephp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224810086,"owners_count":17373748,"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":[],"created_at":"2024-08-03T22:01:18.396Z","updated_at":"2025-05-12T17:31:33.363Z","avatar_url":"https://github.com/acmephp.png","language":"PHP","funding_links":[],"categories":["类库"],"sub_categories":["安全"],"readme":"Acme PHP\n========\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/acmephp/acmephp/test-build.yaml?branch=master\u0026style=flat-square)](https://github.com/acmephp/acmephp/actions/workflows/test-build.yaml?query=branch%3Amaster)\n[![Packagist Version](https://img.shields.io/packagist/v/acmephp/acmephp.svg?style=flat-square)](https://packagist.org/packages/acmephp/acmephp)\n[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)\n\nAcme PHP is a simple yet very extensible CLI client for Let's Encrypt that will help\nyou get and renew free HTTPS certificates.\n\nAcme PHP is also an initiative to bring a robust, stable and powerful implementation\nof the ACME protocol in PHP. Using the Acme PHP library and core components, you will be\nable to deeply integrate the management of your certificates directly in your application\n(for instance, renew your certificates from your web interface). If you are interested\nby these features, have a look at the [acmephp/core](https://github.com/acmephp/core) and\n[acmephp/ssl](https://github.com/acmephp/ssl) libraries.\n\n\u003e  Acme PHP is now maintained by https://zerossl.com\n\u003e\n\u003e Other companies are welcome to contribute to the maintenance of the library. Thanks to:\n\u003e - https://redirection.io/\n\n## Why should I use Acme PHP when I have an official client?\n\nAcme PHP provides several major improvements over the default clients:\n-   Acme PHP comes by nature as a single binary file: a single download and you are ready to start working ;\n-   Acme PHP is based on a configuration file instead command line arguments.\n    Thus, the configuration is much more expressive and the same setup is used at every renewal ;\n-   Acme PHP is very extensible it to create the certificate files structure you need for your webserver.\n    It brings several default formatters to create classical file structures\n    (nginx, nginx-proxy, haproxy, etc.) but you can very easily create your own if you need to ;\n-   Acme PHP follows a strict BC policy preventing errors in your scripts or CRON even if you update it (see\n    [the Backward Compatibility policy of Acme PHP](#backward-compatibility-policy) for more informations) ;\n\n## Documentation\n\nRead the official [Acme PHP documentation](https://acmephp.github.io).\n\n## Backward Compatibility policy\n\nAcme PHP follows a strict BC policy by sticking carefully to [semantic versioning](http://semver.org). This means\nyour scripts, your CRON tasks and your code will keep working properly even when you update Acme PHP (either the CLI\ntool or the library), as long as you keep the same major version (1.X.X, 2.X.X, etc.).\n\n## Launch the Test suite\n\nThe Acme PHP test suite uses the Docker Boulder image to create an ACME server.\nTo launch the test suite, you need to setup the proper Docker environment for the suite.\nUseful scripts are available under the `tests` directory: in the Acme PHP root directory,\nexecute the following:\n\n```\n# Create the Docker environment required for the suite\nsudo tests/setup.sh\n\n# Run the tests\ntests/run.sh\n\n# Clean the docker environment\ntests/teardown.sh\n```\n\n**Note**: you may have boulder errors sometimes in tests. Simply ignore them and rerun the suite,\nthey are due to an issue in the container DNS.\n\n**Warning**: as the acmephp/testing-ca Docker image needs to be mapped to the host network,\nyou may have ports conflicts. See [https://github.com/acmephp/testing-ca](https://github.com/acmephp/testing-ca)\nfor more informations.\n\n## Run command\n\nThe run command is an all in one command who works with a `domain`\nconfig file like\n\n```yaml\ncontact_email: contact@company\nkey_type: RSA                                          # RSA or EC (for ECDSA). Default \"RSA\"\n\ndefaults:\n  distinguished_name:\n      country: FR\n      locality: Paris\n      organization_name: MyCompany\n  solver: http\n\ncertificates:\n  - domain: example.com\n    distinguished_name:\n      organization_name: MyCompany Internal\n    solver: route53\n    subject_alternative_names:\n      - '*.example.com'\n      - www.subdomain.example.com\n    install:\n      - action: install_aws_elb\n        region: eu-west-1\n        loadbalancer: my_elb\n  - domain: www.example.com\n    solver:\n      name: http-file\n      adapter: ftp                                     # ftp or sftp or local, see https://flysystem.thephpleague.com/\n      root: /var/www/\n      host: ftp.example.com\n      username: username\n      password: password\n      # port: 21\n      # passive: true\n      # ssl: true\n      # timeout: 30\n      # privateKey: path/to/or/contents/of/privatekey\n```\n\nusage\n\n```bash\n$ acmephp run path-to-config.yml\n```\n\n## Using docker\n\nYou can also use the docker image to generate certificates.\nCertificates and keys are stored into the volume `/root/.acmephp`\n\n```\ndocker run --rm -ti -v /cache/.acmephp:/root/.acmephp -v $PWD/.config.yml:/etc/acmephp.yml:ro acmephp/acmephp:latest run /etc/acmephp.yml\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facmephp%2Facmephp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facmephp%2Facmephp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facmephp%2Facmephp/lists"}