有没有办法阻止 Thin 接受使用 SSLv3 的请求?
我找不到任何关于如何为运行 SSL 的瘦服务器处理贵宾犬的资源。如果我不需要的话,我不想在 nginx 后面瘦身,所以任何资源都会有所帮助。我查看了源代码,但找不到猴子修补它的方法,甚至找不到对它的引用。
有没有办法阻止 Thin 接受使用 SSLv3 的请求?
我找不到任何关于如何为运行 SSL 的瘦服务器处理贵宾犬的资源。如果我不需要的话,我不想在 nginx 后面瘦身,所以任何资源都会有所帮助。我查看了源代码,但找不到猴子修补它的方法,甚至找不到对它的引用。
Thin 使用 eventmachine,因此解决方案包括让 eventmachine 不使用 SSLv2 或 v3。
这个讨论对通用补丁有一些见解 https://github.com/eventmachine/eventmachine/issues/359
另一种选择是使用要禁用的补丁(https://github.com/eventmachine/eventmachine/wiki/Building-EventMachine)构建 eventmachine,然后再构建一个补丁
--- a/ext/ssl.cpp
+++ b/ext/ssl.cpp
@@ -145,7 +145,7 @@ SslContext_t::SslContext_t (bool is_server, const string &privkeyfile, const str
}
bIsServer = is_server;
- pCtx = SSL_CTX_new (is_server ? SSLv23_server_method() : SSLv23_client_method());
+ pCtx = SSL_CTX_new (is_server ? TLSv1_server_method() : TLSv1_client_method());
if (!pCtx)
throw std::runtime_error ("no SSL context");
我无法对其进行全面测试,但此命令应该会失败:
openssl s_client -connect 127.0.0.1:3000 -ssl3