EricMakesStuff\ServerMonitor\Monitors\SSLCertificateMonitor::processCertificate PHP Метод

processCertificate() публичный Метод

public processCertificate ( $certificateInfo )
    public function processCertificate($certificateInfo)
    {
        if (!empty($certificateInfo['subject']) && !empty($certificateInfo['subject']['CN'])) {
            $this->certificateDomain = $certificateInfo['subject']['CN'];
        }
        if (!empty($certificateInfo['validTo_time_t'])) {
            $validTo = Carbon::createFromTimestampUTC($certificateInfo['validTo_time_t']);
            $this->certificateExpiration = $validTo->toDateString();
            $this->certificateDaysUntilExpiration = -$validTo->diffInDays(Carbon::now(), false);
        }
        if (!empty($certificateInfo['extensions']) && !empty($certificateInfo['extensions']['subjectAltName'])) {
            $this->certificateAdditionalDomains = [];
            $domains = explode(', ', $certificateInfo['extensions']['subjectAltName']);
            foreach ($domains as $domain) {
                $this->certificateAdditionalDomains[] = str_replace('DNS:', '', $domain);
            }
        }
    }

Usage Example

 /** @test */
 public function it_can_parse_a_certificate_days_to_expiration()
 {
     $monitor = new SSLCertificateMonitor(['url' => 'https://www.example.com/']);
     $certificate = $this->certificate;
     $certificate['validTo_time_t'] = strtotime('+2 days');
     $monitor->processCertificate($certificate);
     $this->assertEquals(2, $monitor->getCertificateDaysUntilExpiration());
     $certificate['validTo_time_t'] = strtotime('-2 days');
     $monitor->processCertificate($certificate);
     $this->assertEquals(-2, $monitor->getCertificateDaysUntilExpiration());
 }