Class: Site
- Inherits:
-
Object
- Object
- Site
- Defined in:
- lib/brisk/server/site.rb
Class Method Summary collapse
- .build_secure_caddy_file(url) ⇒ Object
- .certificates_path ⇒ Object
- .create_certificate(url) ⇒ Object
- .create_private_key(key_path) ⇒ Object
- .create_signing_request(url, key_path, csr_path) ⇒ Object
- .get_site_paths(config, site) ⇒ Object
- .is_secured?(config, site) ⇒ Boolean
- .read_site(path) ⇒ Object
- .secure(url) ⇒ Object
- .site_file_exists?(path) ⇒ Boolean
- .trust_certificate(crt_path) ⇒ Object
- .unsecure(url) ⇒ Object
- .write_site(path, site) ⇒ Object
Class Method Details
.build_secure_caddy_file(url) ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/brisk/server/site.rb', line 46 def self.build_secure_caddy_file(url) path = File.("../../../stubs/secureCaddyfile", __dir__) file = File.read(path) new_file = file.gsub("BRISK_SITE", url) new_file = new_file.gsub("BRISK_CERT", "#{certificates_path}/#{url}.crt") new_file = new_file.gsub("BRISK_KEY", "#{certificates_path}/#{url}.key") return new_file end |
.certificates_path ⇒ Object
96 97 98 |
# File 'lib/brisk/server/site.rb', line 96 def self.certificates_path Constants.valet_home + '/Certificates' end |
.create_certificate(url) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/brisk/server/site.rb', line 17 def self.create_certificate(url) key_path = certificates_path + "/#{url}.key" csr_path = certificates_path + "/#{url}.csr" crt_path = certificates_path + "/#{url}.crt" create_private_key(key_path) create_signing_request(url, key_path, csr_path) system "openssl x509 -req -days 365 -in #{csr_path} -signkey #{key_path} -out #{crt_path}" trust_certificate(crt_path) end |
.create_private_key(key_path) ⇒ Object
34 35 36 |
# File 'lib/brisk/server/site.rb', line 34 def self.create_private_key(key_path) system "openssl genrsa -out #{key_path} 2048" end |
.create_signing_request(url, key_path, csr_path) ⇒ Object
38 39 40 |
# File 'lib/brisk/server/site.rb', line 38 def self.create_signing_request(url, key_path, csr_path) system "openssl req -new -subj \"/C=/ST=/O=/localityName=/commonName=#{url}/organizationalUnitName=/emailAddress=/\" -key #{key_path} -out #{csr_path} -passin pass:" end |
.get_site_paths(config, site) ⇒ Object
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/brisk/server/site.rb', line 82 def self.get_site_paths(config, site) site_path = nil config['paths'].each do |path| if File.directory?("/#{path}/#{site}") if File.file?("/#{path}/#{site}/config.ru") site_path = "/#{path}/#{site}" end end end site_path end |
.is_secured?(config, site) ⇒ Boolean
30 31 32 |
# File 'lib/brisk/server/site.rb', line 30 def self.is_secured?(config, site) config['secured'].include?(site) end |
.read_site(path) ⇒ Object
72 73 74 75 76 |
# File 'lib/brisk/server/site.rb', line 72 def self.read_site(path) if site_file_exists?(path) return File.read("#{path}/site.txt") end end |
.secure(url) ⇒ Object
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/brisk/server/site.rb', line 6 def self.secure(url) unsecure(url) FileSystem.create_dir(certificates_path) create_certificate(url) caddy_file = build_secure_caddy_file(url) FileSystem.write("#{Constants.valet_home}/Caddy/#{url}", caddy_file) end |
.site_file_exists?(path) ⇒ Boolean
78 79 80 |
# File 'lib/brisk/server/site.rb', line 78 def self.site_file_exists?(path) File.file?("#{path}/site.txt") end |
.trust_certificate(crt_path) ⇒ Object
42 43 44 |
# File 'lib/brisk/server/site.rb', line 42 def self.trust_certificate(crt_path) system "sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain #{crt_path}" end |
.unsecure(url) ⇒ Object
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/brisk/server/site.rb', line 55 def self.unsecure(url) if File.exists?("#{certificates_path}/#{url}.crt") File.delete("#{Constants.valet_home}/Caddy/#{url}") File.delete("#{certificates_path}/#{url}.key") File.delete("#{certificates_path}/#{url}.csr") File.delete("#{certificates_path}/#{url}.crt") system "sudo security delete-certificate -c #{url} -t" end end |
.write_site(path, site) ⇒ Object
66 67 68 69 70 |
# File 'lib/brisk/server/site.rb', line 66 def self.write_site(path, site) File.open("#{path}/site.txt", "w+") do |f| f.write(site) end end |