gpt4 book ai didi

ruby-on-rails - 使用 SSL、Puma 和 Rails 的 Ubuntu 开发配置

转载 作者:太空宇宙 更新时间:2023-11-03 12:53:50 24 4
gpt4 key购买 nike

目标:让 ssl 在开发模式下工作(ssl 在 heroku 上工作正常)

我的设置:Ubuntu 16.04 rails 5.0.1彪马 3.6.2

配置/环境/开发.rb

config.force_ssl = true 

我尝试遵循这个 puma ssl 操作方法: https://gist.github.com/tadast/9932075(我不确定关于在此处粘贴以上链接内容与引用它的 github 协议(protocol)是什么)

如果我然后使用命令行方法运行 puma

puma -b 'ssl://127.0.0.1:3000?key=/home/sean/.ssh/server.key&cert=/home/sean/.ssh/server.crt'

我在尝试将证书添加到 ubuntu 后尝试通过浏览器访问时收到 Chrome 的“不安全”错误。

sudo cp server.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates

Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

我应该看到这里添加了 1 吗?我还尝试将 server.crt 复制到/etc/ssl/certs

如果我继续通过 chrome block ,我会收到控制台错误:

SSL error, peer: 127.0.0.1, peer cert: , #<Puma::MiniSSL::SSLError: OpenSSL error: error:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request - 336027804>

我没有在命令行上使用 puma,而是尝试添加到 config/initializers/puma.rb

bind 'ssl://127.0.0.1:3000?key=/home/sean/.ssh/server.key&cert=/home/sean/.ssh/server.crt'

开始: rails s

我没有得到任何页面加载,但控制台显示:

HTTP parse error, malformed request (): # 2017-01-23 10:04:43 -0500: ENV: {"rack.version"=>[1, 3], "rack.errors"=>#>, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "SCRIPT_NAME"=>"", "QUERY_STRING"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "SERVER_SOFTWARE"=>"puma 3.6.2 Sleepy Sunday Serenity", "GATEWAY_INTERFACE"=>"CGI/1.2"}

我还尝试将 puma 降级到 3.5.2

我哪里错了?

最佳答案

我通过在 Apache 服务器中启用 mod_ssl 并为 Apache 添加一些配置来监听 443 端口来解决这个问题。您也可以在 Puma 的前端使用 Nginx 与套接字进行通信。还有一种方法可以通过安装 Puma-dev 来解决这个问题。 ,这会自动通过 SSL 提供应用程序。我将描述我的做法,它可能对您/某人有所帮助:

我先制作自签名证书,然后为我的项目制作新的虚拟主机,例如:site1.local。然后我启用了 mod_ssldefault-ssl.conf。我在我的虚拟主机端口 443 中添加了类似这样的转发保密性:

<VirtualHost *:443>
ServerName site1.local
SSLEngine on
SSLCertificateFile "/home/user/.ssh/server.crt"
SSLCertificateKeyFile "/home/user/.ssh/server.key"
DocumentRoot /var/www/site1.local/public

SSLProtocol +TLSv1 +TLSv1.1 +TLSv1.2
SSLHonorCipherOrder On
SSLCipherSuite EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!MEDIUM:!SEED:!3DES:!CAMELLIA:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4
</VirtualHost>

当我重新启动 Apache 服务器时,我仍然收到 google chrome 的不安全网站警告。我需要在 chrome 中手动添加根证书:chrome://settings/certificates,然后是菜单选项卡Authoritiesimport button。在导入 server.crt 文件之前,我选中了所有 3 个复选框。完成导入后,我重新启动了 google chrome,并且在 chrome 的搜索栏中获得了绿色 https 锁定。

一些引用:

https://leehblue.com/add-self-signed-ssl-google-chrome-ubuntu-16-04/

Getting Chrome to accept self-signed localhost certificate

https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-rails-app-with-puma-and-nginx-on-ubuntu-14-04

希望对你有帮助

关于ruby-on-rails - 使用 SSL、Puma 和 Rails 的 Ubuntu 开发配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41809819/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com