如何在安全SSL模式下启动WEBrick Ruby服务器HTTPS
开始情况: 通过apt安装程序安装Linux Ubuntu操作系统和Ruby。之后,通过gempackake处理程序安装webrickruby服务器 具有版本号的应用程序:如何在安全SSL模式下启动WEBrick Ruby服务器HTTPS,ruby,linux,ssl,openssl,webrick,Ruby,Linux,Ssl,Openssl,Webrick,开始情况: 通过apt安装程序安装Linux Ubuntu操作系统和Ruby。之后,通过gempackake处理程序安装webrickruby服务器 具有版本号的应用程序: Linux Ubuntu 18.04 Ruby 2.5.1p57 OpenSSL 1.1.1 gemwebrick 2.7.6 gem openssl 2.7.6 目标情况: 以https模式运行WEBrick服务器 我查看了WEBricks的主页,下面是安装示例 require 'webrick' require 'w
- Linux Ubuntu 18.04
- Ruby 2.5.1p57
- OpenSSL 1.1.1
- gemwebrick 2.7.6
- gem openssl 2.7.6
require 'webrick'
require 'webrick/https'
require 'openssl'
cert = OpenSSL::X509::Certificate.new File.read '/path/to/cert.pem'
pkey = OpenSSL::PKey::RSA.new File.read '/path/to/pkey.pem'
server = WEBrick::HTTPServer.new(:Port => 8000,
:SSLEnable => true,
:SSLCertificate => cert,
:SSLPrivateKey => pkey)
trap 'INT' do server.shutdown end
server.start
我使用以下命令生成了cert/key
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
毕竟,WEBrick不工作,下面的错误消息会打印出来
ERROR OpenSSL::SSL::SSLError: SSL_accept returned=1 errno=0 state=error: http request
/var/lib/gems/2.5.0/gems/webrick-1.6.0/lib/webrick/server.rb:299:in `accept'
/var/lib/gems/2.5.0/gems/webrick-1.6.0/lib/webrick/server.rb:299:in `block (2 levels) in start_thread'
有人知道如何解决问题吗?答案可以在您收到的错误消息中找到:
ERROR OpenSSL::SSL::SSLError: SSL_accept returned=1 errno=0 state=error: http request
当您尝试访问服务器时,您发出的是HTTP请求,而不是HTTPS请求。OpenSSL需要一个HTTPS请求
更改<代码>http://localhost:8000在您的客户机中转到https://localhost:8000
您将获得:
[2020-04-25 13:08:49] ERROR `/' not found.
::1 - - [25/Apr/2020:13:08:49 PDT] "GET / HTTP/1.1" 404 285
- -> /
答案可在您收到的错误消息中找到:
ERROR OpenSSL::SSL::SSLError: SSL_accept returned=1 errno=0 state=error: http request
当您尝试访问服务器时,您发出的是HTTP请求,而不是HTTPS请求。OpenSSL需要一个HTTPS请求
更改<代码>http://localhost:8000在您的客户机中转到https://localhost:8000
您将获得:
[2020-04-25 13:08:49] ERROR `/' not found.
::1 - - [25/Apr/2020:13:08:49 PDT] "GET / HTTP/1.1" 404 285
- -> /
在ROR5中,默认服务器是puma。您可以将其与新应用程序一起使用,在终端中执行“rails服务器”命令。韦布里克也很好。如果您使用单独安装进行ROR测试,那么webrick是不错的。可能是红宝石的问题。是的。这是关于普通WEBrick安装,没有ROR gems。在ROR 5中,默认服务器是puma。您可以将其与新应用程序一起使用,在终端中执行“rails服务器”命令。韦布里克也很好。如果您使用单独安装进行ROR测试,那么webrick是不错的。可能是红宝石的问题。是的。这是关于普通WEBrick安装,没有ROR gems。