Skip to content

Instantly share code, notes, and snippets.

@davidtolsma
Created May 21, 2014 15:14
Show Gist options
  • Save davidtolsma/ff304c74b12a04295f61 to your computer and use it in GitHub Desktop.
Save davidtolsma/ff304c74b12a04295f61 to your computer and use it in GitHub Desktop.
Rake task to generate a self signed ssl certificate for development
desc "Create a self signed SSL certificate for Development"
task :create_ssl do
directory = '.ssl'
certificate_name = 'localhost'
ssl_utility = 'openssl'
application = system "#{ssl_utility} version"
# Check if openssl exists
if application.nil?
puts "#{ssl_utility} doesn't exist"
elsif application
# Create .ssl folder if it doesn't exist
Dir.mkdir( directory ) unless File.exists?( directory )
extensions = ['.key', '.csr', '.crt']
# remove previous .key, .csr, and .crt
extensions.each do |ext|
path = "#{directory}/#{certificate_name}#{ext}"
File.delete( path ) if File.exist?( path )
end
key = "#{directory}/#{certificate_name}#{extensions[0]}"
puts "\nGenerating key \t (#{key})\n"
system "openssl genrsa -out #{key} 1024"
csr = "#{directory}/#{certificate_name}#{extensions[1]}"
puts "\nGenerating csr \t (#{csr})\n"
system "openssl req -new -key #{key} -out #{csr}"
crt = "#{directory}/#{certificate_name}#{extensions[2]}"
puts "\nGenerating crt \t (#{crt})\n"
system "openssl x509 -req -days 1024 -in #{csr} -signkey #{key} -out #{crt}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment