lib/piedesaint/cli.rb in piedesaint-0.1.0 vs lib/piedesaint/cli.rb in piedesaint-0.1.1

- old
+ new

@@ -38,37 +38,53 @@ key: File.join(".", ".piedesaint", "ssl", "server.key" ), cert: File.join(".", ".piedesaint", "ssl", "server.crt" ), username: "user", password: "password", freshness: 3600, + metastore: 'file:/tmp/rack/meta', + entitystore: 'file:/tmp/rack/body', + tar: true, folders: parameters } open 'config', 'w' do |io| io.write config.to_yaml end end puts "Configuration created at #{Dir.pwd}/.piedesaint" end + def cert ( cert_subject = 'CN=Piedesaint' ) + key, cert = create_ssl_artifacts + + FileUtils.mkdir_p ".piedesaint" + FileUtils.cd ".piedesaint" do + FileUtils.mkdir_p "ssl" + FileUtils.cd "ssl" do + open 'server.key', 'w' do |io| io.write key.to_pem end + open 'server.crt', 'w' do |io| io.write cert.to_pem end + end + end + end + private def load_config config_path = find_default_config_path if config_path.nil? abort "Configuration not provided.\nExecute '#{$PROGRAM_NAME} init' to generate one" end @config = YAML.load_file File.join(config_path, "config") end - def create_ssl_artifacts + def create_ssl_artifacts ( cert_subject = 'CN=Piedesaint' ) key = OpenSSL::PKey::RSA.new 2048 cert = OpenSSL::X509::Certificate.new cert.version = 2 cert.serial = 0 cert.not_before = Time.now cert.not_after = Time.now + 3 * 3600 cert.public_key = key.public_key - name = OpenSSL::X509::Name.parse 'CN=Piedesaint' + name = OpenSSL::X509::Name.parse cert_subject cert.subject = name cert.issuer = name cert.sign key, OpenSSL::Digest::SHA1.new return key, cert \ No newline at end of file