/**
* @throws InvalidConfiguration
*/
public function runMonitor()
{
$urlParts = $this->parseUrl($this->url);
try {
$this->certificateInfo = $this->downloadCertificate($urlParts);
} catch (\ErrorException $e) {
event(new SSLCertificateInvalid($this));
return false;
} catch (\Exception $e) {
throw InvalidConfiguration::urlCouldNotBeDownloaded();
}
$this->processCertificate($this->certificateInfo);
if ($this->certificateDaysUntilExpiration < 0 || !$this->hostCoveredByCertificate($urlParts['host'], $this->certificateDomain, $this->certificateAdditionalDomains)) {
event(new SSLCertificateInvalid($this));
} elseif (in_array($this->certificateDaysUntilExpiration, $this->alarmDaysBeforeExpiration)) {
event(new SSLCertificateExpiring($this));
} else {
event(new SSLCertificateValid($this));
}
}