mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
custom SSL code is abandoned in favor of Let's Encrypt
This commit is contained in:
parent
4fca52e03d
commit
4dc613e27a
1 changed files with 0 additions and 104 deletions
104
app/settings.rb
104
app/settings.rb
|
@ -57,110 +57,6 @@ post '/settings/:username/profile' do
|
|||
redirect "/settings/#{@site.username}#profile"
|
||||
end
|
||||
|
||||
=begin
|
||||
post '/settings/:username/ssl' do
|
||||
require_login
|
||||
require_ownership_for_settings
|
||||
|
||||
unless params[:key] && params[:cert]
|
||||
flash[:error] = 'SSL key and certificate are required.'
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
|
||||
begin
|
||||
key = OpenSSL::PKey::RSA.new params[:key][:tempfile].read, ''
|
||||
rescue => e
|
||||
flash[:error] = 'Could not process SSL key, file may be incorrect, damaged, or passworded (you need to remove the password).'
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
|
||||
if !key.private?
|
||||
flash[:error] = 'SSL Key file does not have private key data.'
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
|
||||
certs_string = params[:cert][:tempfile].read
|
||||
|
||||
cert_array = certs_string.lines.slice_before(/-----BEGIN CERTIFICATE-----/).to_a.collect {|a| a.join}
|
||||
|
||||
if cert_array.empty?
|
||||
flash[:error] = 'Cert file does not contain any certificates.'
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
|
||||
cert_valid_for_domain = false
|
||||
|
||||
cert_array.each do |cert_string|
|
||||
begin
|
||||
cert = OpenSSL::X509::Certificate.new cert_string
|
||||
rescue => e
|
||||
flash[:error] = 'Could not process SSL certificate, file may be incorrect or damaged.'
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
|
||||
if cert.not_after < Time.now
|
||||
flash[:error] = 'SSL Certificate has expired, please create a new one.'
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
|
||||
cert_cn = cert.subject.to_a.select {|a| a.first == 'CN'}.flatten[1]
|
||||
cert_valid_for_domain = true if cert_cn && cert_cn.match(@site.domain)
|
||||
end
|
||||
|
||||
unless cert_valid_for_domain
|
||||
flash[:error] = "Your certificate CN (common name) does not match your domain: #{@site.domain}"
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
|
||||
# Everything else was worse.
|
||||
|
||||
crtfile = Tempfile.new 'crtfile'
|
||||
crtfile.write cert_array.join
|
||||
crtfile.close
|
||||
|
||||
keyfile = Tempfile.new 'keyfile'
|
||||
keyfile.write key.to_pem
|
||||
keyfile.close
|
||||
|
||||
if ENV['TRAVIS'] != 'true'
|
||||
nginx_testfile = Tempfile.new 'nginx_testfile'
|
||||
nginx_testfile.write %{
|
||||
pid /tmp/throwaway.pid;
|
||||
events {}
|
||||
error_log /dev/null error;
|
||||
http {
|
||||
access_log off;
|
||||
server {
|
||||
listen 60000 ssl;
|
||||
server_name #{@site.domain} *.#{@site.domain};
|
||||
ssl_certificate #{crtfile.path};
|
||||
ssl_certificate_key #{keyfile.path};
|
||||
}
|
||||
}
|
||||
}
|
||||
nginx_testfile.close
|
||||
|
||||
line = Cocaine::CommandLine.new(
|
||||
"nginx", "-t -c :path",
|
||||
expected_outcodes: [0],
|
||||
swallow_stderr: true
|
||||
)
|
||||
|
||||
begin
|
||||
output = line.run path: nginx_testfile.path
|
||||
rescue Cocaine::ExitStatusError => e
|
||||
flash[:error] = "There is something wrong with your certificate, please check with your issuing CA."
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
end
|
||||
|
||||
@site.update ssl_key: key.to_pem, ssl_cert: cert_array.join
|
||||
|
||||
flash[:success] = 'Updated SSL key/certificate.'
|
||||
redirect "/settings/#{@site.username}#custom_domain"
|
||||
end
|
||||
=end
|
||||
|
||||
post '/settings/:username/change_name' do
|
||||
require_login
|
||||
require_ownership_for_settings
|
||||
|
|
Loading…
Add table
Reference in a new issue