<div dir="ltr">Hello all,<div><br></div><div>Please find below my further observations,</div><div><span style="line-height: 17px;"><br></span></div><div>1.&nbsp;<span style="line-height: 17px;">Erlang adopted a more elegant way to express higher order functions (funs), based on&nbsp;</span><a href="http://www.erlang.org/eeps/eep-0023.html" style="line-height: 17px;">http://www.erlang.org/eeps/eep-0023.html</a><span style="line-height: 17px;">. &nbsp;So, {Module, Function} would be typically represented as Module:Function/Arity</span></div><div><span style="line-height: 17px;"><br></span></div><div><span style="line-height: 17px;">2. Based on the EEP mentioned above and the SSL documentation, I was able to write a test program and validate CRL successfully by referring a function either internally within the same module or from an external module. For internal module's function, I used the form, {verify_fun, {fun validate/3, []}}; for external module's function, I used the form {verify_fun, {fun cert_util:validate/3, []}}.</span></div><div><span style="line-height: 17px;"><br></span></div><div><span style="line-height: 17px;">3. After successfully writing a test program, I tried to apply the same in rabbitmq; however, rabbitmq was unable to start and I witnessed the following in the logs,</span></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;"><div><b style="line-height: 17px;">/var/log/rabbitmq/startup_log</b></div><div><div><span style="line-height: 17px;">{"could not start kernel pid",application_controller,"error in config file \"/etc/rabbitmq/rabbitmq.config\" (1): bad term"}</span></div></div><div><div><span style="line-height: 17px;"><br></span></div></div><div><div><span style="line-height: 17px;"><b>/var/log/rabbitmq/startup_err</b></span></div></div><div><div><span style="line-height: 17px;"><div>Crash dump was written to: erl_crash.dump</div></span></div></div><div><div><span style="line-height: 17px;"><div>could not start kernel pid (application_controller) (error in config file "/etc/rabbitmq/rabbitmq.config" (1): bad term)</div></span></div></div></blockquote><div><br></div><div>4. It was clear from the above that rabbitmq was unable to take the EEP-23 form for verify_fun; so I tried reverting back the funs to old type of the form {Module, Function}. &nbsp; When I tried restarting, while it gave no errors and started successfully, my CRL validation function was never called.</div><div><div><div style="line-height: 17px;"><br></div></div><span style="line-height: 17px;">5. RabbitMQ site suggests that in order to use SSL reliably use R14B(erts 4.0.1) as the minimum version. &nbsp;I tried using R16B (erts-5.10.1) on 64-bit Cent OS, which internally uses ssl-5.2.1. &nbsp;Also, I tried R16B01(erts-5.10.2) on 64-bit Windows 7, which internally uses ssl-5.3.1. &nbsp;Between these versions, there are lot of bugs fixed and enhancements applied in SSL application&nbsp;</span><a href="http://www.erlang.org/doc/apps/ssl/notes.html" style="line-height: 17px;">http://www.erlang.org/doc/apps/ssl/notes.html</a>. &nbsp;</div><div><br></div><div>To summarize, though RabbitMQ states R14B as the minimum version for reliable SSL, I wonder whether it is compatible with the latest SSL available in the recent Erlang distributions.</div><div><br></div><div>Regards</div><div>Bala</div><div><br></div><div><br></div></div>