{"id":13879982,"url":"https://github.com/lgromanowski/acme-plugin","last_synced_at":"2025-04-05T08:06:30.082Z","repository":{"id":2809442,"uuid":"47497038","full_name":"lgromanowski/acme-plugin","owner":"lgromanowski","description":":lock_with_ink_pen: ACME protocol plugin for Ruby on Rails applications","archived":false,"fork":false,"pushed_at":"2022-12-14T00:41:18.000Z","size":227,"stargazers_count":185,"open_issues_count":28,"forks_count":30,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-29T07:05:51.323Z","etag":null,"topics":["acme-protocol","certificate","domain-certificate","letsencrypt","rails","ruby"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/acme_plugin","language":"Ruby","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/lgromanowski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"MIT-LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-12-06T13:06:57.000Z","updated_at":"2025-01-02T16:57:12.000Z","dependencies_parsed_at":"2023-01-13T12:06:23.088Z","dependency_job_id":null,"html_url":"https://github.com/lgromanowski/acme-plugin","commit_stats":null,"previous_names":["lgromanowski/letsencrypt-plugin"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lgromanowski%2Facme-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lgromanowski%2Facme-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lgromanowski%2Facme-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lgromanowski%2Facme-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lgromanowski","download_url":"https://codeload.github.com/lgromanowski/acme-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247305933,"owners_count":20917208,"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":["acme-protocol","certificate","domain-certificate","letsencrypt","rails","ruby"],"created_at":"2024-08-06T08:02:41.973Z","updated_at":"2025-04-05T08:06:30.060Z","avatar_url":"https://github.com/lgromanowski.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"# acme-plugin\n[![Build Status](https://travis-ci.org/lgromanowski/acme-plugin.svg?branch=master)](https://travis-ci.org/lgromanowski/acme-plugin) [![Gem Version](https://badge.fury.io/rb/acme_plugin.svg)](https://badge.fury.io/rb/acme_plugin) [![Dependency Status](https://gemnasium.com/lgromanowski/acme-plugin.svg)](https://gemnasium.com/lgromanowski/acme-plugin) [![Code Climate](https://codeclimate.com/github/lgromanowski/acme-plugin/badges/gpa.svg)](https://codeclimate.com/github/lgromanowski/acme-plugin) [![Test Coverage](https://codeclimate.com/github/lgromanowski/acme-plugin/badges/coverage.svg)](https://codeclimate.com/github/lgromanowski/acme-plugin/coverage)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://tldrlegal.com/license/mit-license)\n\n`acme-plugin` is a Ruby on Rails helper for [Let's Encrypt](https://letsencrypt.org/) service for retrieving SSL certificates (without using sudo, like original letsencrypt client does). It uses [acme-client](https://github.com/unixcharles/acme-client) gem for communication with Let's Encrypt server.\n\n**Important note:** As of version 0.0.3 of this gem dependency to SQLite has been removed (it can be used on [Heroku](https://www.heroku.com/) - certificates will be displayed on console, after that please follow [SSL-Endpoint](https://devcenter.heroku.com/articles/ssl-endpoint) guide).\n\n\n## Installation\n\nFor detailed installation guide please visit [Installation-guide](https://github.com/lgromanowski/acme-plugin/wiki/Installation-guide) wiki page.\n\n## Usage\nRun `acme_plugin` rake task:\n```bash\n$ rake acme_plugin\n```\n\nIf everything was done correctly, then you should see output similar to the one below:\n```bash\nI, [2015-12-06T17:28:15.582308 #25931]  INFO -- : Loading private key...\nI, [2015-12-06T17:28:15.582592 #25931]  INFO -- : Trying to register at Let's Encrypt service...\nI, [2015-12-06T17:28:16.381682 #25931]  INFO -- : Already registered.\nI, [2015-12-06T17:28:16.381749 #25931]  INFO -- : Sending authorization request...\nI, [2015-12-06T17:28:16.646616 #25931]  INFO -- : Storing challenge information...\nI, [2015-12-06T17:28:18.193827 #25931]  INFO -- : Waiting for challenge status...\nI, [2015-12-06T17:28:21.643566 #25931]  INFO -- : Creating CSR...\nI, [2015-12-06T17:28:22.173471 #25931]  INFO -- : Saving certificates and key...\nI, [2015-12-06T17:28:22.174312 #25931]  INFO -- : Certificate has been generated.\n```\nand in `output_cert_dir` directory you should have four files:\n- domain.name-cert.pem - Domain certificate\n- domain.name-chain.pem - Chained certificate\n- domain.name-fullchain.pem - Full chain of certificates\n- domain.name-key.pem - Domain certificate key\n\nOr if running on Heroku (certificates content removed for brevity):\n\n```\n$ heroku run rake acme_plugin\nRunning rake acme_plugin on protected-headland-4855... up, run.8779\nI, [2016-01-01T08:22:10.039679 #3]  INFO -- : Loading private key...\nI, [2016-01-01T08:22:10.042417 #3]  INFO -- : Trying to register at Let's Encrypt service...\nI, [2016-01-01T08:22:10.277835 #3]  INFO -- : Already registered.\nI, [2016-01-01T08:22:10.277933 #3]  INFO -- : Sending authorization request...\nI, [2016-01-01T08:22:10.427459 #3]  INFO -- : Storing challenge information...\nI, [2016-01-01T08:22:12.848764 #3]  INFO -- : Waiting for challenge status...\nI, [2016-01-01T08:22:14.173372 #3]  INFO -- : Creating CSR...\nI, [2016-01-01T08:22:14.578974 #3]  INFO -- : You are running this script on Heroku, please copy-paste certificates to your local machine\nI, [2016-01-01T08:22:14.579058 #3]  INFO -- : and then follow https://devcenter.heroku.com/articles/ssl-endpoint guide:\nI, [2016-01-01T08:22:14.579122 #3]  INFO -- : ====== protected-headland-4855.herokuapp.com-cert.pem ======\n-----BEGIN CERTIFICATE-----\nMIIFLjCCBBagAwIBAgISAZ5iICQdUWZyZ+TlNo4imcwZMA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\n...\n\n-----END CERTIFICATE-----\nI, [2016-01-01T08:22:14.579329 #3]  INFO -- : ====== protected-headland-4855.herokuapp.com-key.pem ======\n-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAqZsY9b9SM7PBRJ7ERdYBo1xWOJFgZHdjd5KGV7rBoBM8jp13\nE/HmYqG1BIFGlOyW6cUXuiA+Xa8ijvrnDWax1HaCFLv2S3OL2k8AOjzL6OpINAhm\n...\n\n-----END RSA PRIVATE KEY-----\nI, [2016-01-01T08:22:14.579523 #3]  INFO -- : ====== protected-headland-4855.herokuapp.com-chain.pem ======\n-----BEGIN CERTIFICATE-----\nMIIEqDCCA5CgAwIBAgIRAJgT9HUT5XULQ+dDHpceRL0wDQYJKoZIhvcNAQELBQAw\nPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD\n...\n\n-----END CERTIFICATE-----\nI, [2016-01-01T08:22:14.579670 #3]  INFO -- : ====== protected-headland-4855.herokuapp.com-fullchain.pem ======\n-----BEGIN CERTIFICATE-----\nMIIFLjCCBBagAwIBAgISAZ5iICQdUWZyZ+TlNo4imcwZMA0GCSqGSIb3DQEBCwUA\nMEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD\n...\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nMIIEqDCCA5CgAwIBAgIRAJgT9HUT5XULQ+dDHpceRL0wDQYJKoZIhvcNAQELBQAw\nPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD\n...\n-----END CERTIFICATE-----\nI, [2016-01-01T08:22:14.579963 #3]  INFO -- : Certificate has been generated.\n```\n\n## Bugs, issues, feature requests?\n\nIf you encounter a bug, issue or you have feature request please submit it in [issue tracker](https://github.com/lgromanowski/acme-plugin/issues).\n\n## License\n\n```\nCopyright 2015-2018 Lukasz Gromanowski \u003clgromanowski@gmail.com\u003e\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\nLIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\nOF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\nWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flgromanowski%2Facme-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flgromanowski%2Facme-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flgromanowski%2Facme-plugin/lists"}