URLGenie SSL Certificate Days Until Expiration Monitor

URLGenie.AutoOverride.DaysToExpiry.Monitor (UnitMonitor)

This applies to Standard Https URL types only (not Special types).

Knowledge Base article:

Summary

SSL certificate is near expiration OR has expired.

Causes

The SSL Certificate is nearing expiration OR has already expired.

Resolutions

Contact the administrator of the URL (server) to update/renew their SSL certificate.

You can attempt to get the certificate info by using the following link:

Get Certificate Info

Element properties:

TargetURLGenie.HttpsRequest.Standard
Parent MonitorURLGenie.Aggregate.Health.Monitor
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeURLGenie.AutoOverride.DaysToExpiry.MT
RemotableTrue
AccessibilityPublic
Alert Message
HTTP Request Error: Certificate Expiring Soon
Certificate Expiring Soon
Days to Expiration: {0}

Monitor Settings:
URL: {1}
GroupID: {2}
DNSResolutionTime: {3}
Interval: {4}
ResponseTime: {5}
Wiki: {6}
Description: {7}

******* Request Headers *******
{8}
******* End Request Headers *******

******* Response Headers *******
{9}
******* End Response Headers *******

RunAsDefault

Source Code:

<UnitMonitor ID="URLGenie.AutoOverride.DaysToExpiry.Monitor" Accessibility="Public" Enabled="true" Target="URLGenie.HttpsRequest.Standard" ParentMonitorID="URLGenie.Aggregate.Health.Monitor" Remotable="true" Priority="Normal" TypeID="URLGenie.AutoOverride.DaysToExpiry.MT" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="URLGenie.AutoOverride.DaysToExpiry.Monitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/DataItem/RequestResults/RequestResult[@Id="1"]/BasePageData/DaysToExpiry$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/URL$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/GroupID$</AlertParameter3>
<AlertParameter4>$Data/Context/RequestResults/RequestResult[@Id=1]/BasePageData/DNSResolutionTime$</AlertParameter4>
<AlertParameter5>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Interval$</AlertParameter5>
<AlertParameter6>$Data/Context/DataItem/RequestResults/RequestResult[@Id="1"]/BasePageData/TotalResponseTime$</AlertParameter6>
<AlertParameter7>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Wiki$</AlertParameter7>
<AlertParameter8>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Description$</AlertParameter8>
<AlertParameter9>$Data/Context/RequestResults/RequestResult[@Id=1]/BasePageData/RequestHeaders$</AlertParameter9>
<AlertParameter10>$Data/Context/RequestResults/RequestResult[@Id=1]/BasePageData/ResponseHeaders$</AlertParameter10>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="CriteriaOK" MonitorTypeStateID="CriteriaOK" HealthState="Success"/>
<OperationalState ID="CriteriaError" MonitorTypeStateID="CriteriaError" HealthState="Error"/>
<OperationalState ID="CriteriaWarning" MonitorTypeStateID="CriteriaWarning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<AuthenticationScheme>None</AuthenticationScheme>
<AuthPass>$RunAs[Name="URLGenie.Standard.Profile"]/Password$</AuthPass>
<AuthUser>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/AuthUser$</AuthUser>
<Body><Script>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Body$</Script></Body>
<DaysToExpiryCritical>14</DaysToExpiryCritical>
<DaysToExpiryWarning>30</DaysToExpiryWarning>
<CollectResponseBody>Never</CollectResponseBody>
<ContentMatch>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/ContentMatch$</ContentMatch>
<ContentMatchRegExOperator>DoesNotContainSubstring</ContentMatchRegExOperator>
<ErrorTime>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/ErrorTime$</ErrorTime>
<HeaderContentType>
<Name>Content-Type</Name>
<Value>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/HeaderContentType$</Value>
</HeaderContentType>
<Header1>
<Name>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Header1Name$</Name>
<Value>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Header1Value$</Value>
</Header1>
<Header2>
<Name>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Header2Name$</Name>
<Value>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Header2Value$</Value>
</Header2>
<Header3>
<Name>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Header3Name$</Name>
<Value>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Header3Value$</Value>
</Header3>
<Interval>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Interval$</Interval>
<ProxyAuthenticationScheme>None</ProxyAuthenticationScheme>
<ProxyPass>$RunAs[Name="URLGenie.Proxy.Profile"]/Password$</ProxyPass>
<Proxy>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/Proxy$</Proxy>
<ProxyUser>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/ProxyUser$</ProxyUser>
<ResponseTimeout>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/ResponseTimeout$</ResponseTimeout>
<RetryCount>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/RetryCount$</RetryCount>
<StatusThreshold>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/StatusThreshold$</StatusThreshold>
<URL>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/URL$</URL>
<UserAgent>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/UserAgent$</UserAgent>
<Verb>GET</Verb>
<WarningTime>$Target/Property[Type="URLGenie.HttpRequest.Seed"]/WarningTime$</WarningTime>
</Configuration>
</UnitMonitor>