我已根据https://github.com/ryanb/private_pub#serving-faye-over-https-with-thin设置了包含SSL的私人酒吧,并添加了daemonize: true
(已测试和未经过测试)。
我可以浏览https://mydomain.com:4443/faye.js
并加载。
页面上没有错误。
然而,实际上没有任何工作,即没有实时事件触发。在控制台中尝试PrivatePub.publish_to
时,我得到了:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
当我运行瘦服务器un-daemonized时,我可以看到它在尝试发布时返回<SSL_incomp>
。
服务器上的SSL工作正常,我该如何解决这个问题?
答案 0 :(得分:3)
我设法通过将ca-bundle
的内容附加到slim config中指定的crt
文件来解决这个问题
答案 1 :(得分:0)
请找到解决此问题的正确方法。
仅使用yourdomain.crt文件时,private_pub在与Rails服务器进行握手时将无法工作。
因此,您的SSL证书提供商将为您提供middle.crt或CAbundle文件。
只要做 如果您有CA提供的ca-bundle文件
*cat yourdomain.crt whatever.ca-bundle > yourdomainfinal.crt*
如果您具有中级证书
*cat yourdomain.crt intermediate.crt > yourdomainfinal.crt*
然后在运行服务器时使用yourdomainfinal.crt和私钥yourdomain.key指向ssl verify。
请找到瘦服务器的块
---
chdir: "/home/your/project/path"
environment: "your environment"
timeout: 30
log: "/home/your/project/path/log/thin.log"
pid: /home/your/project/path/tmp/pids/thin.pid
max_conns: 1024
require: []
max_persistent_conns: 1000
wait: 30
threadpool_size: 20
servers: 1
threaded: true
socket: /tmp/thin.sock
ssl: true
ssl_key_file: /home/your/project/path/ssl/yourdomain.key
ssl_cert_file: /home/your/project/path/ssl/yourdomainfinal.crt
对于私人酒吧
要通过ssl使用私有发布,请在private_pub_thin.yml中使用以下配置
---
port: 4443
ssl: true
ssl_key_file: /path/to/yourdomain.key
ssl_cert_file: /path/to/yourdomainfinal.crt
environment: "your environment"
rackup: private_pub.ru
然后使用以下命令运行服务器
*thin -C config/private_pub_thin.yml start*
如果您正在使用捆绑器,请不要忘记使用
*RAILS_ENV="your environment" bundle exec thin -C config/private_pub_thin.yml start*
上面的命令在使用捆绑程序时很重要,如果不这样做,则您的私有发布会启动,并且在运行服务器时不会出现任何问题,但是它不会发布消息。这就是我观察到的。
请注意,请使用**sudo ufw status**
就是这样!如果您按照上述所有指定步骤进行操作,则应该让private_pub用于生产或通过SSL进行操作。