Сертификат пира CN = `stream.twitter.com ‘не соответствует ожидаемому CN =` 199.16.156.217’

Я пытался разработать потоковое приложение для Twitter на своем компьютере AWS EC2. Платформа ОС — Ubuntu 16.04.1 LTS, и я снизил версию PHP до 5.6.28-1 + deb.sury.org ~ xenial + 1

Когда я запускаю потоковое приложение Twitter на этом сервере, я получаю следующие ошибки.

Warning: fsockopen(): Peer certificate CN=`stream.twitter.com' did not match expected CN=`199.16.156.217' in /var/www/html/myapp/streamer/twitterstreamer.php on line 620

Warning: fsockopen(): Failed to enable crypto in /var/www/html/myapp/streamer/twitterstreamer.php on line 620

Warning: fsockopen(): unable to connect to ssl://199.16.156.217:443 (Unknown error) in /var/www/html/myapp/streamer/twitterstreamer.php on line 620

Тот же код работает без каких-либо проблем на двух других машинах (один — AWS EC2, а другой — годовой сервер).

Все порты в текущей машине EC2 открыты, и SSL версия OpenSSL/1.0.2g openssl раздел имеет следующее значение.

openssl раздел — phpinfo

Может ли кто-нибудь помочь мне найти точную проблему?

1

Решение

Проблема решена с подсказкой первой ошибки.
Warning: fsockopen(): Peer certificate CN='stream.twitter.com' did not match expected CN='199.16.156.217' in /var/www/html/myapp/streamer/twitterstreamer.php on line 620

В PHP 5.6.x значение openssl VERIFY_PEER по умолчанию верно Система сначала получит сертификат от партнера и совпадет с нашим. В моем приложении я подключался с IP-адресом, а URL-адрес в выбранном сертификате stream.twitter.com, Это была проблема.

Смена IP в fsockopen в stream.twitter.com решил мою проблему.

Версии PHP до 5.6, значение по умолчанию VERIFY_PEER ложно, и именно поэтому тот же код работает на других моих экземплярах.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]