Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/creadone/zerossl
Ruby client for ZeroSSL
https://github.com/creadone/zerossl
client ruby ssl zerossl
Last synced: 7 days ago
JSON representation
Ruby client for ZeroSSL
- Host: GitHub
- URL: https://github.com/creadone/zerossl
- Owner: creadone
- License: mit
- Created: 2021-08-18T03:41:28.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2021-08-18T03:44:22.000Z (about 3 years ago)
- Last Synced: 2024-09-21T13:22:48.176Z (about 2 months ago)
- Topics: client, ruby, ssl, zerossl
- Language: Ruby
- Homepage:
- Size: 5.86 KB
- Stars: 4
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# ZeroSSL
Ruby client to obtain SSL certificate from [ZeroSSL](https://zerossl.com) via [REST API](https://zerossl.com/documentation/api/)
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'zerossl'
```And then execute:
```ruby
$ bundle install
```
Or install it yourself as:
```ruby
$ gem install zerossl
```
## Usage```ruby
require 'zerossl'# Setup gem
ZeroSSL::Setup.config.access_key = '123456789'
client = ZeroSSL::Client.new# Define domain and server html path
domain_name = 'umbrella.llc'
html_directory = '/var/www/html'# Set Certificate Signing Request options
csr_opts = {
common_name: domain_name,
organization: 'Umbrella',
country: 'RU',
state_name: 'Moscow',
locality: 'Moscow'
}# Build CSR
csr, key = ZeroSSL::CSR.new(csr_opts).call# Build certificate request
request = {
certificate_domains: [domain_name],
certificate_validity_days: ZeroSSL::VALIDITY_DAYS::DAY90,
certificate_csr: csr
}# Receive request, extract certificate id and validation details
response = client.create(request).body
certificate_id = response['id']
other_methods = response['validation']['other_methods']# Write validation content into file to the server directory
other_methods.each do |domain_name, validation_types|
validation_uri = URI(validation_types['file_validation_url_http'])
validation_content = validation_types['file_validation_content']File.open(File.join(html_directory, validation_uri.path), 'w') do |io|
io << validation_content.join("\n")
end
end# Tell ZeroSSL domain are ready for validation
client.verify(certificate_id, ZeroSSL::VALIDATION_TYPE::HTTP)
#=> { [...] validation => { other_methods => { => file_validation_url_http }}}# Check validation status
client.status(certificate_id)
#=> true# Download Certificate (inline)
client.download(certificate_id)
#=> {
# "certificate.crt": "---BEGIN CERTIFICATE---{primary_certificate}---END CERTIFICATE---",
# "ca_bundle.crt": "---BEGIN CERTIFICATE---{certificate_bundle}---END CERTIFICATE---"
# }
```## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/creadone/zerossl.
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).