0

我们在客户帐户上运行了数千个 ssl 证书,之前有一个 php 脚本可以连接到他们在 NGINX 上运行的网站,以检查 SSL 证书是否已正确加载且有效。这使用以下代码工作,但是当我们停用 SSLv3 时,我无法获得它,或者类似于使用 TLS1.2 的工作。

我需要找到一个继续使用 php 的解决方案,因为它是一个更大的应用程序的一部分;有没有其他人经历过能够帮助解决的问题。

我也意识到我可以使用其他解决方案来读取服务器上活动的文件,但是虽然他们会验证证书,但他们实际上并没有测试主机是否正确响应,并且正确配置了正确的证书活动和 dns。

$streamContext = stream_context_create([
    'ssl' => [
                'capture_peer_cert' => true,
            ],
    ]);

$timeout = 5;

$client = @stream_socket_client(
    'ssl://' . $domainname . ':443',
    $errorNumber,
    $errorDescription,
    $timeout,
    STREAM_CLIENT_CONNECT,
    $streamContext);

if (!$client) {
    
    $response = stream_context_get_params($client);
    $certificateProperties = openssl_x509_parse($response['options']['ssl']['peer_certificate']);

    // $certificateProperties['validTo']) 

} else {
    $sslconnectedok = true;
}
4

0 回答 0