我使用SSL / Apache在瘦服务器上运行PrivatePub。
我有一个瘦配置文件,如下所示:
ssl: true
cert_chain_file: "{cert directory}/fullchain.pem"
ssl_key_file: "{cert directory}/privkey.pem"
environment: "production"
rackup: "private_pub.ru"
我使用以下方式运行:
$ bundle exec thin -p 9292 -C config/private_pub_thin.yml start
private_pub_thin.yml
是上述配置文件。
服务器启动时没有任何问题,并且找到了证书文件 - 我使用的是Rails服务器,并使用Qualys进行了检查。
但是我的Rails服务器无法连接到Thin。我使用openssl
来尝试找出问题所在:
$ openssl s_client -connect 0.0.0.0:9292
返回:
140388916979344:error:140790E5:SSL routines:ssl23_write:ssl handshake failure:s23_lib.c:177:
CONNECTED(00000003)
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 315 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
---
薄边没有错误。
我不知道如何继续弄清楚为什么Thin没有做正确的握手。
答案 0 :(得分:0)
固定。问题似乎是瘦没有正确使用配置文件。它肯定正在解析它并检查SSL证书链和密钥文件是否存在,正如我在实际的gem源中删除调试行所证实的那样,但不知何故没有正确使用它们来进行SSL握手
将SSL证书链和密钥文件作为命令行选项传递而不是在单独的配置文件中正常工作。