mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-08 01:15:37 +08:00
37 lines
1.2 KiB
PHP
37 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
assert(function_exists('openssl_digest'));
|
|
assert(openssl_digest('123456', 'md5') === 'e10adc3949ba59abbe56e057f20f883e');
|
|
if (file_exists('/etc/ssl/openssl.cnf')) {
|
|
$domain_list = [
|
|
'captive.apple.com',
|
|
'detectportal.firefox.com',
|
|
'static-php.dev',
|
|
'www.example.com',
|
|
];
|
|
$valid = false;
|
|
foreach ($domain_list as $domain) {
|
|
$ssloptions = [
|
|
'capture_peer_cert' => true,
|
|
'capture_peer_cert_chain' => true,
|
|
'allow_self_signed' => false,
|
|
'CN_match' => $domain,
|
|
'verify_peer' => true,
|
|
'SNI_enabled' => true,
|
|
'SNI_server_name' => $domain,
|
|
];
|
|
$context = stream_context_create(['ssl' => $ssloptions]);
|
|
$result = stream_socket_client("ssl://{$domain}:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
|
|
if ($result !== false) {
|
|
$valid = true;
|
|
break;
|
|
}
|
|
}
|
|
assert($valid);
|
|
}
|
|
if (PHP_VERSION_ID >= 80500 && (!PHP_ZTS || PHP_OS_FAMILY !== 'Windows') && defined('OPENSSL_VERSION_NUMBER') && OPENSSL_VERSION_NUMBER >= 0x30200000) {
|
|
assert(function_exists('openssl_password_hash'));
|
|
}
|