作者 lyh

gx

@@ -61,23 +61,28 @@ class DomainInfo extends Command @@ -61,23 +61,28 @@ class DomainInfo extends Command
61 * @time :2023/9/11 15:07 61 * @time :2023/9/11 15:07
62 */ 62 */
63 public function updateDomainSsl($domain){ 63 public function updateDomainSsl($domain){
64 - $context = stream_context_create([  
65 - 'ssl' => [  
66 - 'capture_peer_cert' => true,  
67 - 'capture_peer_cert_chain' => false,  
68 - ],  
69 - ]);  
70 - $stream = stream_socket_client('ssl://'.$domain.':443', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);  
71 - if(!$stream) {  
72 - die("Failed to connect: $errno - $errstr"); 64 + try {
  65 + $context = stream_context_create([
  66 + 'ssl' => [
  67 + 'capture_peer_cert' => true,
  68 + 'capture_peer_cert_chain' => false,
  69 + ],
  70 + ]);
  71 + $stream = stream_socket_client('ssl://'.$domain.':443', $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
  72 + if(!$stream) {
  73 + die("Failed to connect: $errno - $errstr");
  74 + }
  75 + $remote_cert = stream_context_get_params($stream)['options']['ssl']['peer_certificate'];
  76 + if(!$remote_cert) {
  77 + die("Failed to retrieve certificate");
  78 + }
  79 + $valid_from = date('Y-m-d H:i:s', openssl_x509_parse($remote_cert)['validFrom_time_t']);
  80 + $valid_to = date('Y-m-d H:i:s', openssl_x509_parse($remote_cert)['validTo_time_t']);
  81 + fclose($stream);
  82 + }catch (\Exception $e){
  83 + $valid_from = '';
  84 + $valid_to = '';
73 } 85 }
74 - $remote_cert = stream_context_get_params($stream)['options']['ssl']['peer_certificate'];  
75 - if(!$remote_cert) {  
76 - die("Failed to retrieve certificate");  
77 - }  
78 - $valid_from = date('Y-m-d H:i:s', openssl_x509_parse($remote_cert)['validFrom_time_t']);  
79 - $valid_to = date('Y-m-d H:i:s', openssl_x509_parse($remote_cert)['validTo_time_t']);  
80 - fclose($stream);  
81 return ['from'=>$valid_from,'to'=>$valid_to]; 86 return ['from'=>$valid_from,'to'=>$valid_to];
82 } 87 }
83 88