ZeroSSL
Ruby client to obtain SSL certificate from ZeroSSL via REST API
Installation
Add this line to your application's Gemfile:
gem 'zerossl'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install zerossl
Usage
require 'zerossl'
ZeroSSL::Setup.config.access_key = '123456789'
client = ZeroSSL::Client.new
domain_name = 'umbrella.llc'
html_directory = '/var/www/html'
csr_opts = {
common_name: domain_name,
organization: 'Umbrella',
country: 'RU',
state_name: 'Moscow',
locality: 'Moscow'
}
csr, key = ZeroSSL::CSR.new(csr_opts).call
request = {
certificate_domains: [domain_name],
certificate_validity_days: ZeroSSL::VALIDITY_DAYS::DAY90,
certificate_csr: csr
}
response = client.create(request).body
certificate_id = response['id']
other_methods = response['validation']['other_methods']
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
client.verify(certificate_id, ZeroSSL::VALIDATION_TYPE::HTTP)
client.status(certificate_id)
client.download(certificate_id)
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.
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.