【发布时间】:2015-11-14 21:36:30
【问题描述】:
我有一个可以从 https-connections 获取证书的 php 函数,是否可以将其扩展为也可以在 smtp-starttls 上使用?
能否以“tcp://”打开,发送“STARTTLS”命令后,切换为“ssl://”?
function ssl_fetch_cert($domain, $port = 443)
{
$url = "ssl://{$domain}:{$port}";
$connection_context_option['ssl']['capture_peer_cert'] = TRUE;
$connection_context = stream_context_create($connection_context_option);
$connection_client = stream_socket_client($url, $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $connection_context);
$connection_info = stream_context_get_params($connection_client);
// $sha256 = openssl_x509_fingerprint($connection_info['options']['ssl']['peer_certificate'], 'sha256');
return $connection_info['options']['ssl']['peer_certificate'];
}
【问题讨论】: