- Notifications
You must be signed in to change notification settings - Fork4
creadone/zerossl
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ruby client to obtain SSL certificate fromZeroSSL viaREST API
Add this line to your application's Gemfile:
gem'zerossl'
And then execute:
$bundleinstall
Or install it yourself as:
$geminstallzerossl
require'zerossl'# Setup gemZeroSSL::Setup.config.access_key='123456789'client=ZeroSSL::Client.new# Define domain and server html pathdomain_name='umbrella.llc'html_directory='/var/www/html'# Set Certificate Signing Request optionscsr_opts={common_name:domain_name,organization:'Umbrella',country:'RU',state_name:'Moscow',locality:'Moscow'}# Build CSRcsr,key=ZeroSSL::CSR.new(csr_opts).call# Build certificate requestrequest={certificate_domains:[domain_name],certificate_validity_days:ZeroSSL::VALIDITY_DAYS::DAY90,certificate_csr:csr}# Receive request, extract certificate id and validation detailsresponse=client.create(request).bodycertificate_id=response['id']other_methods=response['validation']['other_methods']# Write validation content into file to the server directoryother_methods.eachdo |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")endend# Tell ZeroSSL domain are ready for validationclient.verify(certificate_id,ZeroSSL::VALIDATION_TYPE::HTTP)#=> { [...] validation => { other_methods => { <domain> => file_validation_url_http }}}# Check validation statusclient.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---"# }
After checking out the repo, runbin/setup
to install dependencies. Then, runrake test
to run the tests. You can also runbin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, runbundle exec rake install
. To release a new version, update the version number inversion.rb
, and then runbundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the.gem
file torubygems.org.
Bug reports and pull requests are welcome on GitHub athttps://github.com/creadone/zerossl.
The gem is available as open source under the terms of theMIT License.
About
Ruby client for ZeroSSL