В моем коде rails у меня есть следующий код, который необходимо выполнить в приложении rails. Обычно вы запускаете это в командной строке. Ее код определен:
COMMAND=->(url, port){%x"echo QUIT | openssl s_client -CApath /etc/ssl/certs/ -quiet -no_ign_eof -servername #{url} -verify_hostname #{url} -connect #{url}:#{port}"}
В приложении мне нужно выполнить это:
Model::COMMAND.call('website.com',443)
«Официальный» вывод команды - пустая строка. Тем не менее, я вижу следующее:
[53] pry(main)> SiteCheck::COMMAND.call('website.com',443)
depth=0 C = US, ST = States, L = Somewhere, O =Corp, serialNumber = 123456789, CN = www.website.com, postalCode = 12345, businessCategory = Private Organization, street = JFK Random Street, jurisdictionST = Nevada, jurisdictionC = US
verify error:num=62:Hostname mismatch
verify return:1
depth=3 C = PL, O = Unizeto Technologies S.A., OU = Certum Certification Authority, CN = Certum Trusted Network CA
verify return:1
depth=2 C = US, ST = States, L = Somewhere, O = Corporation, CN = EV Root Certification Authority RSA R2
verify return:1
depth=1 C = US, ST = States, L = Somewhere, O = Corp, CN = EV SSL Intermediate CA RSA R3
verify return:1
depth=0 C = US, ST = States, L = Somewhere, O = Corp, serialNumber = 123456789, CN = www.website.com, postalCode = 12345, businessCategory = Private Organization, street = JFK Random Street, jurisdictionST = Nevada, jurisdictionC = US
verify return:1
DONE
=> ""
Что мне особенно нужно, это verify error: num=62 Hostname mismatch
часть. Как я могу захватить это? Я пытался использовать pop3, но моя проблема в том, что возвращаемое значение - пустая строка, поэтому в некотором смысле я получаю возвращаемый результат, но не то, что мне нужно. Есть ли способ, которым я могу захватить это в ruby?