通过Apache实现SSL精简&x27;不要握手

通过Apache实现SSL精简&x27;不要握手,apache,ssl,thin,Apache,Ssl,Thin,我正在使用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

我正在使用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\u pub\u thin.yml
是上述配置文件

服务器启动时没有问题,并且确实找到了证书文件——这与我在Rails服务器上使用的证书文件相同,并且使用Qualys进行了检查

但是,我的Rails服务器在连接到精简版时遇到问题。我使用了
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没有进行正确握手的原因。

修复。问题似乎是thin没有正确使用配置文件。它肯定是在解析它并检查SSL证书链和密钥文件的存在,正如我在实际的gem源代码中删除调试行所确认的那样,但不知何故没有正确地使用它们来进行SSL握手

将SSL证书链和密钥文件作为命令行选项传递,而不是在单独的配置文件中传递,效果很好