Получить сертификат ssl порта HTTPS легко (по умолчанию 443)
Но как насчет ssl на порт TCP?
Живой пример:
205.185.198.226:1194
Это vpn (сервер openvpn), работающий на порту 1194
IP 205.185.198.226 с использованием ssl / tls на порту 1194 для обработки методов аутентификации клиента на основе сертификатов
Как сказал Штеффен Ульрих:
OpenVPN не простой SS, но он упаковывает поток SSL в свои собственные
протокол см. https://openvpn.net/index.php/open-source/documentation/security-overview.html таким образом
Вы должны говорить протокол инкапсуляции, прежде чем попасть в TLS
поток, который затем включает в себя сертификат.
Итак, действительно ли возможно получить ssl-сертификат сервера openvpn на порт tcp? Любой пример кода? (PHP, C или Perl)
$url = "tcp://198.203.28.44:2018";
Я не знаю, о каком протоколе говорят на этом ip: порте, но либо это не SSL, либо сервер не принимает общие параметры внутри рукопожатия SSL.
$ openssl s_client -connect 198.203.28.44:2018 -debug
CONNECTED(00000003)
write to 0x17e1490 [0x17e1a20] (295 bytes => 295 (0x127))
...
read from 0x17e1490 [0x17e6f80] (7 bytes => 0 (0x0))
...SSL routines:SSL23_WRITE:ssl handshake failure:...
Клиенты запускают рукопожатие SSL с ClientHello (295 байтов). Сервер только закрывает соединение, а не отвечает рукопожатием (0 байт).
Поскольку успешное рукопожатие SSL не выполняется, вы не можете получить сертификат для соединения, то есть сервер не отправляет ничего, что также означает, что сертификат не был отправлен.
Других решений пока нет …