un.rb: use OpenSSL::PKey.read instead of OpenSSL::PKey::RSA.new

Also, error out if --ssl-private-key option is not given, since
specifying only the certificate makes no sense.  [Feature #13714]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
rhe 2017-07-05 09:05:53 +00:00
Родитель af683bd16c
Коммит 650e758060
1 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -329,11 +329,12 @@ def httpd
opt = options[name] and (options[name] = Integer(opt)) rescue nil
end
if cert = options[:SSLCertificate]
key = options[:SSLPrivateKey] or
raise "--ssl-private-key option must also be given"
require 'webrick/https'
require 'openssl'
options[:SSLCertificate] = OpenSSL::X509::Certificate.new(File.read(cert))
options[:SSLEnable] = true
options[:SSLPrivateKey] &&= OpenSSL::PKey::RSA.new(File.read(options[:SSLPrivateKey]))
options[:SSLCertificate] = OpenSSL::X509::Certificate.new(File.read(cert))
options[:SSLPrivateKey] = OpenSSL::PKey.read(File.read(key))
options[:Port] ||= 8443 # HTTPS Alternate
end
options[:Port] ||= 8080 # HTTP Alternate