Я успешно включил шифрование во время транзакции SMTP + STARTTLS, но я хотел бы узнать некоторые подробности об установлении соединения TLS. Шифрование включается следующим образом после успешного открытия потокового соединения:
$encrypted = stream_socket_enable_crypto(
$smtp_conn,
true,
STREAM_CRYPTO_METHOD_TLS_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT | STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
);
$encrypted
просто содержит true
, который не говорит мне много. Я пытаюсь выяснить, где я могу найти такие вещи, как версия TLS, домен, открытый сертификат, механизм обмена ключами, статус проверки, хэш и шифр, используемые в соединении. Это должно быть свойство потока, для которого включено шифрование, поэтому я искал такие вещи, как stream_get_meta_data
но это содержит только это:
[
'timed_out' => false,
'blocked' => true,
'eof' => false,
'stream_type' => 'tcp_socket/ssl',
'mode' => 'r+',
'unread_bytes' => 0,
'seekable' => false,
]
Я также посмотрел в stream_context_get_params
а также stream_context_get_options
но ни один не содержит ничего интересного.
В NodeJS место для поиска будет в модуль TLS, который содержит именно то, что я ищу.
Где я могу найти больше информации TLS из PHP?
Задача ещё не решена.
Других решений пока нет …