Forum Discussion

David_Dalgaard_'s avatar
David_Dalgaard_
Icon for Nimbostratus rankNimbostratus
Jul 25, 2013

Script to check for certificate expiration

Hi guys

 

Most of you have probably been in the situation where a certificate suddenly expired without anyone noticing (or at least no one took proper action). I was in that situation a couple of weeks ago. I asked Lord Google if someone had a good method of detecting certificate expiration automatically. I didn't really find anything relevant, except for a couple of SOLs from F5 regarding the checkcert utility. So I sat down and did some scripting myself. I'm pretty satisfied with the result, however, this is my first real bash script so you can probably find something that could be optimized or done in a better way.

 

So first of all the scripts checks if the device is the active box. If it is not, the script does nothing, but if is, the script creates a list of all expiring certificates and places them in expiringcerts.txt. This file is then checked and each line is reported separately to our servicedesk (which in return creates a case and escalates it directly to network operations). When a certificate has been reported it is put in the flaggedcerts.txt. This file ensures that a certificate is not reported multiple times, unless it is less than a week from expiring. In this case a new mail is send each time the script is ran (in our case, it is put in /etc/crontab and configured to run every day at 12 pm/noon).

 

If a certificate is deleted, expired or renewed it is no longer put in the expiringcerts.txt file and is therefore also removed from the flaggedcerts.txt file.

 

In the end a status mail is sent to me each day to ensure that the check ran as it should. This is just me that like to be absolutely sure that the script does its job.

 

___________________________

 

!/bin/bash

 

Author: dadalife

 

 

 

Check if unit is active and if it is the script should continue:

 

ACTIVE=$(tmsh show cm failover-status | grep ACTIVE | wc -l)

 

if (($ACTIVE == 1)); then

 

echo -e "Unit is active. Proceeding...\n"

 

 

 

SCRIPTPATH='/root/'

 

MAIL='servicedesk@atea.dk'

 

MAILCC='dada@atea.dk'

 

NUMREPORTED=0

 

NUMFLAGGED=0

 

NUMCRITICAL=0

 

 

 

Create a list of all expiring certificates:

 

tmsh run sys crypto check-cert | grep 'will expired' | awk -F 'in file' '{print $2}' | awk -F ' GMT' '{print $1}' > "$SCRIPTPATH"expiringcerts.txt

 

echo "A list of all expiring certificates has been created!"

 

 

 

Send an email for each certificate if it has not already been sent:

 

echo -e "\nChecking for expiring certificates..."

 

> "$SCRIPTPATH"tempflagged.txt

 

while read line; do

 

BODY="\n\nPlease create this case as an incident (Priority 3) under the customer CNM and escalate directly to OPNOM.\n\nThis is an auto-generated e-mail from the BIG-IP."

 

CERT=$(echo $line | awk -F ' ' '{print $1}')

 

CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')

 

FLAGGED=$(cat "$SCRIPTPATH"flaggedcerts.txt | grep $CERT | wc -l)

 

if (( $FLAGGED == 0)); then

 

echo $CERT >> "$SCRIPTPATH"tempflagged.txt

 

echo -e "$CERT expires on $CERTEXPIRE GMT.$BODY" | mail -s "$CERT expires on $CERTEXPIRE GMT" $MAIL -c $MAILCC

 

echo "--> $CERT reported to servicedesk."

 

NUMREPORTED=$[$NUMREPORTED +1]

 

else

 

echo $CERT >> "$SCRIPTPATH"tempflagged.txt

 

echo "--> $CERT has already been flagged"

 

NUMFLAGGED=$[$NUMFLAGGED +1]

 

fi

 

done < "$SCRIPTPATH"expiringcerts.txt

 

cp "$SCRIPTPATH"tempflagged.txt "$SCRIPTPATH"flaggedcerts.txt

 

echo -e "Check for expiring certificates done!"

 

 

 

Check if a certificate is less than a week from expiring:

 

CURRENTTIMEEPOCH=$(date +%s)

 

echo -e "\nChecking for almost expired certificates..."

 

while read line; do

 

CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')

 

CERTEXPIREEPOCH=$(date --date="$CERTEXPIRE" +%s)

 

CERTEXPIREDIFF=$(expr $CERTEXPIREEPOCH - $CURRENTTIMEEPOCH)

 

if (($CERTEXPIREDIFF < 604800)); then

 

BODY="\n\nPlease create this case as an incident (Priority 1) under the customer CNM and escalate directly to OPNOM.\n\nThis is an auto-generated e-mail from the BIG-IP."

 

CERT=$(echo $line | awk -F ' ' '{print $1}')

 

echo -e "$CERT expires on $CERTEXPIRE GMT.$BODY" | mail -s "WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!" $MAIL -c $MAILCC

 

echo "--> WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!"

 

NUMCRITICAL=$[$NUMCRITICAL +1]

 

fi

 

done < "$SCRIPTPATH"expiringcerts.txt

 

echo "Check for almost expired certificates done!"

 

 

 

echo -e "\nCertification check done!"

 

 

 

Send a status email:

 

echo -e "Hi David\n\nYour script did its job!!\n\nNumber of newly reported certificates: '$NUMREPORTED'\nNumber of already flagged certificates: '$NUMFLAGGED'\nNumber of critical certificates: '$NUMCRITICAL'\n\nYours Sincerely\nThe BIG-IP" | mail -s "Everthing went well!" $MAILCC

 

 

 

else

 

echo "Unit is standby. No action taken!"

 

fi

 

___________________

 

Feel free to comment on anything! :)

 

 

Thanks,

 

David

 

21 Replies

"}},"componentScriptGroups({\"componentId\":\"custom.widget.Beta_MetaNav\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"component({\"componentId\":\"custom.widget.Community_Quicklinks\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:TechnicalForum\",\"message:107068\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://community.f5.com/discussions/technicalforum/script-to-check-for-certificate-expiration/107068\"}}})":{"__typename":"ComponentRenderResult","html":"
Under Attack? F5 Will Help You.
Contacting F5 Support?
 
DevCentral Quicklinks

* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com

Discover DevCentral Connects

* Podcasts
* Social Channels
* Video Streaming

"}},"componentScriptGroups({\"componentId\":\"custom.widget.Community_Quicklinks\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"component({\"componentId\":\"custom.widget.Beta_Footer\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:TechnicalForum\",\"message:107068\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://community.f5.com/discussions/technicalforum/script-to-check-for-certificate-expiration/107068\"}}})":{"__typename":"ComponentRenderResult","html":"
 
 
 
 
 

\"F5 ©2024 F5, Inc. All rights reserved.
Trademarks Policies Privacy California Privacy Do Not Sell My Personal Information
"}},"componentScriptGroups({\"componentId\":\"custom.widget.Beta_Footer\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"component({\"componentId\":\"custom.widget.Tag_Manager_Helper\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:TechnicalForum\",\"message:107068\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://community.f5.com/discussions/technicalforum/script-to-check-for-certificate-expiration/107068\"}}})":{"__typename":"ComponentRenderResult","html":" "}},"componentScriptGroups({\"componentId\":\"custom.widget.Tag_Manager_Helper\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"component({\"componentId\":\"custom.widget.Consent_Blackbar\"})":{"__typename":"Component","render({\"context\":{\"component\":{\"entities\":[],\"props\":{}},\"page\":{\"entities\":[\"board:TechnicalForum\",\"message:107068\"],\"name\":\"ForumMessagePage\",\"props\":{},\"url\":\"https://community.f5.com/discussions/technicalforum/script-to-check-for-certificate-expiration/107068\"}}})":{"__typename":"ComponentRenderResult","html":"
"}},"componentScriptGroups({\"componentId\":\"custom.widget.Consent_Blackbar\"})":{"__typename":"ComponentScriptGroups","scriptGroups":{"__typename":"ComponentScriptGroupsDefinition","afterInteractive":{"__typename":"PageScriptGroupDefinition","group":"AFTER_INTERACTIVE","scriptIds":[]},"lazyOnLoad":{"__typename":"PageScriptGroupDefinition","group":"LAZY_ON_LOAD","scriptIds":[]}},"componentScripts":[]},"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/community/NavbarDropdownToggle\"]})":[{"__ref":"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/EscalatedMessageBanner\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/users/UserLink\"]})":[{"__ref":"CachedAsset:text:en_US-components/users/UserLink-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserRank\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserRank-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageTime\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageTime-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSolvedBadge\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageSubject\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageSubject-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageBody\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageBody-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageCustomFields\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageCustomFields-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageReplyButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageReplyButton-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/AcceptedSolutionButton\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMore\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/messages/MessageView/MessageViewInline\"]})":[{"__ref":"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/customComponent/CustomComponent\"]})":[{"__ref":"CachedAsset:text:en_US-components/customComponent/CustomComponent-1740415737689"}],"message({\"id\":\"message:107078\"})":{"__ref":"ForumReplyMessage:message:107078"},"message({\"id\":\"message:107079\"})":{"__ref":"ForumReplyMessage:message:107079"},"message({\"id\":\"message:107080\"})":{"__ref":"ForumReplyMessage:message:107080"},"message({\"id\":\"message:107081\"})":{"__ref":"ForumReplyMessage:message:107081"},"message({\"id\":\"message:107069\"})":{"__ref":"ForumReplyMessage:message:107069"},"message({\"id\":\"message:107070\"})":{"__ref":"ForumReplyMessage:message:107070"},"message({\"id\":\"message:107071\"})":{"__ref":"ForumReplyMessage:message:107071"},"message({\"id\":\"message:107072\"})":{"__ref":"ForumReplyMessage:message:107072"},"message({\"id\":\"message:107073\"})":{"__ref":"ForumReplyMessage:message:107073"},"message({\"id\":\"message:107074\"})":{"__ref":"ForumReplyMessage:message:107074"},"message({\"id\":\"message:107075\"})":{"__ref":"ForumReplyMessage:message:107075"},"message({\"id\":\"message:107076\"})":{"__ref":"ForumReplyMessage:message:107076"},"message({\"id\":\"message:107077\"})":{"__ref":"ForumReplyMessage:message:107077"},"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/users/UserAvatar\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/ranks/UserRankLabel\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"shared/client/components/nodes/NodeIcon\"]})":[{"__ref":"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1740415737689"}],"cachedText({\"lastModified\":\"1740415737689\",\"locale\":\"en-US\",\"namespaces\":[\"components/tags/TagView/TagViewChip\"]})":[{"__ref":"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1740415737689"}]},"CachedAsset:pages-1740169842812":{"__typename":"CachedAsset","id":"pages-1740169842812","value":[{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetInvolved.MvpProgram","type":"COMMUNITY","urlPath":"/c/how-do-i/get-involved/mvp-program","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"BlogViewAllPostsPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId/all-posts/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"CasePortalPage","type":"CASE_PORTAL","urlPath":"/caseportal","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"CreateGroupHubPage","type":"GROUP_HUB","urlPath":"/groups/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"CaseViewPage","type":"CASE_DETAILS","urlPath":"/case/:caseId/:caseNumber","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"InboxPage","type":"COMMUNITY","urlPath":"/inbox","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetInvolved.AdvocacyProgram","type":"COMMUNITY","urlPath":"/c/how-do-i/get-involved/advocacy-program","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetHelp.NonCustomer","type":"COMMUNITY","urlPath":"/c/how-do-i/get-help/non-customer","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HelpFAQPage","type":"COMMUNITY","urlPath":"/help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetHelp.F5Customer","type":"COMMUNITY","urlPath":"/c/how-do-i/get-help/f5-customer","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"IdeaMessagePage","type":"IDEA_POST","urlPath":"/idea/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"IdeaViewAllIdeasPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/all-ideas/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"LoginPage","type":"USER","urlPath":"/signin","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"BlogPostPage","type":"BLOG","urlPath":"/category/:categoryId/blogs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetInvolved","type":"COMMUNITY","urlPath":"/c/how-do-i/get-involved","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.Learn","type":"COMMUNITY","urlPath":"/c/how-do-i/learn","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1739501733000,"localOverride":null,"page":{"id":"Test","type":"CUSTOM","urlPath":"/custom-test-2","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ThemeEditorPage","type":"COMMUNITY","urlPath":"/designer/themes","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"TkbViewAllArticlesPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId/all-articles/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"OccasionEditPage","type":"EVENT","urlPath":"/event/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"OAuthAuthorizationAllowPage","type":"USER","urlPath":"/auth/authorize/allow","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"PageEditorPage","type":"COMMUNITY","urlPath":"/designer/pages","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"PostPage","type":"COMMUNITY","urlPath":"/category/:categoryId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ForumBoardPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"TkbBoardPage","type":"TKB","urlPath":"/category/:categoryId/kb/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"EventPostPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"UserBadgesPage","type":"COMMUNITY","urlPath":"/users/:login/:userId/badges","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"GroupHubMembershipAction","type":"GROUP_HUB","urlPath":"/membership/join/:nodeId/:membershipType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"MaintenancePage","type":"COMMUNITY","urlPath":"/maintenance","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"IdeaReplyPage","type":"IDEA_REPLY","urlPath":"/idea/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"UserSettingsPage","type":"USER","urlPath":"/mysettings/:userSettingsTab","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"GroupHubsPage","type":"GROUP_HUB","urlPath":"/groups","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ForumPostPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"OccasionRsvpActionPage","type":"OCCASION","urlPath":"/event/:boardId/:messageSubject/:messageId/rsvp/:responseType","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"VerifyUserEmailPage","type":"USER","urlPath":"/verifyemail/:userId/:verifyEmailToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"AllOccasionsPage","type":"OCCASION","urlPath":"/category/:categoryId/events/:boardId/all-events/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"EventBoardPage","type":"EVENT","urlPath":"/category/:categoryId/events/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"TkbReplyPage","type":"TKB_REPLY","urlPath":"/kb/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"IdeaBoardPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"CommunityGuideLinesPage","type":"COMMUNITY","urlPath":"/communityguidelines","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"CaseCreatePage","type":"SALESFORCE_CASE_CREATION","urlPath":"/caseportal/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"TkbEditPage","type":"TKB","urlPath":"/kb/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ForgotPasswordPage","type":"USER","urlPath":"/forgotpassword","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"IdeaEditPage","type":"IDEA","urlPath":"/idea/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"TagPage","type":"COMMUNITY","urlPath":"/tag/:tagName","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"BlogBoardPage","type":"BLOG","urlPath":"/category/:categoryId/blog/:boardId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"OccasionMessagePage","type":"OCCASION_TOPIC","urlPath":"/event/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ManageContentPage","type":"COMMUNITY","urlPath":"/managecontent","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ClosedMembershipNodeNonMembersPage","type":"GROUP_HUB","urlPath":"/closedgroup/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetHelp.Community","type":"COMMUNITY","urlPath":"/c/how-do-i/get-help/community","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"CommunityPage","type":"COMMUNITY","urlPath":"/","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetInvolved.ContributeCode","type":"COMMUNITY","urlPath":"/c/how-do-i/get-involved/contribute-code","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ForumMessagePage","type":"FORUM_TOPIC","urlPath":"/discussions/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"IdeaPostPage","type":"IDEA","urlPath":"/category/:categoryId/ideas/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"BlogMessagePage","type":"BLOG_ARTICLE","urlPath":"/blog/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"RegistrationPage","type":"USER","urlPath":"/register","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"EditGroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ForumEditPage","type":"FORUM","urlPath":"/discussions/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ResetPasswordPage","type":"USER","urlPath":"/resetpassword/:userId/:resetPasswordToken","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"TkbMessagePage","type":"TKB_ARTICLE","urlPath":"/kb/:boardId/:messageSubject/:messageId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.Learn.AboutIrules","type":"COMMUNITY","urlPath":"/c/how-do-i/learn/about-irules","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"BlogEditPage","type":"BLOG","urlPath":"/blog/:boardId/:messageSubject/:messageId/edit","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetHelp.F5Support","type":"COMMUNITY","urlPath":"/c/how-do-i/get-help/f5-support","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ManageUsersPage","type":"USER","urlPath":"/users/manage/:tab?/:manageUsersTab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ForumReplyPage","type":"FORUM_REPLY","urlPath":"/discussions/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"PrivacyPolicyPage","type":"COMMUNITY","urlPath":"/privacypolicy","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"NotificationPage","type":"COMMUNITY","urlPath":"/notifications","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"UserPage","type":"USER","urlPath":"/users/:login/:userId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"OccasionReplyPage","type":"OCCASION_REPLY","urlPath":"/event/:boardId/:messageSubject/:messageId/comments/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ManageMembersPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/manage/:tab?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"SearchResultsPage","type":"COMMUNITY","urlPath":"/search","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"BlogReplyPage","type":"BLOG_REPLY","urlPath":"/blog/:boardId/:messageSubject/:messageId/replies/:replyId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"GroupHubPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"TermsOfServicePage","type":"COMMUNITY","urlPath":"/termsofservice","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetHelp","type":"COMMUNITY","urlPath":"/c/how-do-i/get-help","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI.GetHelp.SecurityIncident","type":"COMMUNITY","urlPath":"/c/how-do-i/get-help/security-incident","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"CategoryPage","type":"CATEGORY","urlPath":"/category/:categoryId","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"ForumViewAllTopicsPage","type":"FORUM","urlPath":"/category/:categoryId/discussions/:boardId/all-topics/(/:after|/:before)?","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"TkbPostPage","type":"TKB","urlPath":"/category/:categoryId/kbs/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"GroupHubPostPage","type":"GROUP_HUB","urlPath":"/group/:groupHubId/:boardId/create","__typename":"PageDescriptor"},"__typename":"PageResource"},{"lastUpdatedTime":1740169842812,"localOverride":null,"page":{"id":"HowDoI","type":"COMMUNITY","urlPath":"/c/how-do-i","__typename":"PageDescriptor"},"__typename":"PageResource"}],"localOverride":false},"CachedAsset:text:en_US-components/context/AppContext/AppContextProvider-0":{"__typename":"CachedAsset","id":"text:en_US-components/context/AppContext/AppContextProvider-0","value":{"noCommunity":"Cannot find community","noUser":"Cannot find current user","noNode":"Cannot find node with id {nodeId}","noMessage":"Cannot find message with id {messageId}"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-0":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-0","value":{"title":"Loading..."},"localOverride":false},"User:user:-1":{"__typename":"User","id":"user:-1","uid":-1,"login":"Former Member","email":"","avatar":null,"rank":null,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":"ANONYMOUS","registrationTime":null,"confirmEmailStatus":false,"registrationAccessLevel":"VIEW","ssoRegistrationFields":[]},"ssoId":null,"profileSettings":{"__typename":"ProfileSettings","dateDisplayStyle":{"__typename":"InheritableStringSettingWithPossibleValues","key":"layout.friendly_dates_enabled","value":"false","localValue":"true","possibleValues":["true","false"]},"dateDisplayFormat":{"__typename":"InheritableStringSetting","key":"layout.format_pattern_date","value":"dd-MMM-yyyy","localValue":"MM-dd-yyyy"},"language":{"__typename":"InheritableStringSettingWithPossibleValues","key":"profile.language","value":"en-US","localValue":"en","possibleValues":["en-US"]}},"deleted":false},"Theme:customTheme1":{"__typename":"Theme","id":"customTheme1"},"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/bi0zMS0yaUY5MjM3RDI3NzVEQzI1M0U\"}":{"__typename":"AssociatedImage","url":"https://community.f5.com/t5/s/zihoc95639/images/bi0zMS0yaUY5MjM3RDI3NzVEQzI1M0U","mimeType":"image/png"},"Category:category:Forums":{"__typename":"Category","id":"category:Forums","entityType":"CATEGORY","displayId":"Forums","nodeType":"category","depth":1,"title":"Forums","shortTitle":"Forums","parent":{"__ref":"Category:category:top"},"categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:top":{"__typename":"Category","id":"category:top","displayId":"top","nodeType":"category","depth":0,"title":"Top","entityType":"CATEGORY","shortTitle":"Top"},"Forum:board:TechnicalForum":{"__typename":"Forum","id":"board:TechnicalForum","entityType":"FORUM","displayId":"TechnicalForum","nodeType":"board","depth":2,"conversationStyle":"FORUM","title":"Technical Forum","description":"Ask questions.\r\nDiscover Answers.","avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/bi0zMS0yaUY5MjM3RDI3NzVEQzI1M0U\"}"},"profileSettings":{"__typename":"ProfileSettings","language":null},"parent":{"__ref":"Category:category:Forums"},"ancestors":{"__typename":"CoreNodeConnection","edges":[{"__typename":"CoreNodeEdge","node":{"__ref":"Community:community:zihoc95639"}},{"__typename":"CoreNodeEdge","node":{"__ref":"Category:category:Forums"}}]},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"boardPolicies":{"__typename":"BoardPolicies","canPublishArticleOnCreate":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","key":"error.lithium.policies.forums.policy_can_publish_on_create_workflow_action.accessDenied","args":[]}},"canReadNode":{"__typename":"PolicyResult","failureReason":null}},"shortTitle":"Technical Forum","repliesProperties":{"__typename":"RepliesProperties","sortOrder":"PUBLISH_TIME","repliesFormat":"threaded"},"forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/","tagProperties":{"__typename":"TagNodeProperties","tagsEnabled":{"__typename":"PolicyResult","failureReason":null}},"requireTags":true,"tagType":"FREEFORM_AND_PRESET"},"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstNDEtSzFzVEth\"}":{"__typename":"AssociatedImage","url":"https://community.f5.com/t5/s/zihoc95639/images/cmstNDEtSzFzVEth","height":0,"width":0,"mimeType":"image/svg+xml"},"Rank:rank:41":{"__typename":"Rank","id":"rank:41","position":18,"name":"Nimbostratus","color":"CCCCCC","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstNDEtSzFzVEth\"}"},"rankStyle":"FILLED"},"User:user:33210":{"__typename":"User","id":"user:33210","uid":33210,"login":"David_Dalgaard_","deleted":false,"avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-4.svg?time=0"},"rank":{"__ref":"Rank:rank:41"},"email":"","messagesCount":10,"biography":null,"topicsCount":4,"kudosReceivedCount":0,"kudosGivenCount":0,"kudosWeight":1,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2012-03-13T01:00:00.000-07:00","confirmEmailStatus":null},"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:zihoc95639/user:33210"},"ForumTopicMessage:message:107068":{"__typename":"ForumTopicMessage","uid":107068,"subject":"Script to check for certificate expiration","id":"message:107068","revisionNum":1,"repliesCount":21,"author":{"__ref":"User:user:33210"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:TechnicalForum"},"conversation":{"__ref":"Conversation:conversation:107068"},"readOnly":false,"editFrozen":false,"moderationData":{"__ref":"ModerationData:moderation_data:107068"},"body":"

Hi guys

 

\n

Most of you have probably been in the situation where a certificate suddenly expired without anyone noticing (or at least no one took proper action). I was in that situation a couple of weeks ago. I asked Lord Google if someone had a good method of detecting certificate expiration automatically. I didn't really find anything relevant, except for a couple of SOLs from F5 regarding the checkcert utility. So I sat down and did some scripting myself. I'm pretty satisfied with the result, however, this is my first real bash script so you can probably find something that could be optimized or done in a better way.

 

\n

So first of all the scripts checks if the device is the active box. If it is not, the script does nothing, but if is, the script creates a list of all expiring certificates and places them in expiringcerts.txt. This file is then checked and each line is reported separately to our servicedesk (which in return creates a case and escalates it directly to network operations). When a certificate has been reported it is put in the flaggedcerts.txt. This file ensures that a certificate is not reported multiple times, unless it is less than a week from expiring. In this case a new mail is send each time the script is ran (in our case, it is put in /etc/crontab and configured to run every day at 12 pm/noon).

 

\n

If a certificate is deleted, expired or renewed it is no longer put in the expiringcerts.txt file and is therefore also removed from the flaggedcerts.txt file.

 

\n

In the end a status mail is sent to me each day to ensure that the check ran as it should. This is just me that like to be absolutely sure that the script does its job.

 

\n

___________________________

 

\n

!/bin/bash

 

\nAuthor: dadalife

 

\n

 

\n

 

\nCheck if unit is active and if it is the script should continue:

 

\nACTIVE=$(tmsh show cm failover-status | grep ACTIVE | wc -l)

 

\nif (($ACTIVE == 1)); then

 

\necho -e \"Unit is active. Proceeding...\\n\"

 

\n

 

\n

 

\nSCRIPTPATH='/root/'

 

\nMAIL='servicedesk@atea.dk'

 

\nMAILCC='dada@atea.dk'

 

\nNUMREPORTED=0

 

\nNUMFLAGGED=0

 

\nNUMCRITICAL=0

 

\n

 

\n

 

\nCreate a list of all expiring certificates:

 

\ntmsh run sys crypto check-cert | grep 'will expired' | awk -F 'in file' '{print $2}' | awk -F ' GMT' '{print $1}' > \"$SCRIPTPATH\"expiringcerts.txt

 

\necho \"A list of all expiring certificates has been created!\"

 

\n

 

\n

 

\nSend an email for each certificate if it has not already been sent:

 

\necho -e \"\\nChecking for expiring certificates...\"

 

\n> \"$SCRIPTPATH\"tempflagged.txt

 

\nwhile read line; do

 

\n BODY=\"\\n\\nPlease create this case as an incident (Priority 3) under the customer CNM and escalate directly to OPNOM.\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"

 

\n CERT=$(echo $line | awk -F ' ' '{print $1}')

 

\n CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')

 

\n FLAGGED=$(cat \"$SCRIPTPATH\"flaggedcerts.txt | grep $CERT | wc -l)

 

\n if (( $FLAGGED == 0)); then

 

\n echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt

 

\n echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"$CERT expires on $CERTEXPIRE GMT\" $MAIL -c $MAILCC

 

\n echo \"--> $CERT reported to servicedesk.\"

 

\n NUMREPORTED=$[$NUMREPORTED +1]

 

\n else

 

\n echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt

 

\n echo \"--> $CERT has already been flagged\"

 

\n NUMFLAGGED=$[$NUMFLAGGED +1]

 

\n fi

 

\ndone < \"$SCRIPTPATH\"expiringcerts.txt

 

\ncp \"$SCRIPTPATH\"tempflagged.txt \"$SCRIPTPATH\"flaggedcerts.txt

 

\necho -e \"Check for expiring certificates done!\"

 

\n

 

\n

 

\nCheck if a certificate is less than a week from expiring:

 

\nCURRENTTIMEEPOCH=$(date +%s)

 

\necho -e \"\\nChecking for almost expired certificates...\"

 

\nwhile read line; do

 

\n CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')

 

\n CERTEXPIREEPOCH=$(date --date=\"$CERTEXPIRE\" +%s)

 

\n CERTEXPIREDIFF=$(expr $CERTEXPIREEPOCH - $CURRENTTIMEEPOCH)

 

\n if (($CERTEXPIREDIFF < 604800)); then

 

\n BODY=\"\\n\\nPlease create this case as an incident (Priority 1) under the customer CNM and escalate directly to OPNOM.\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"

 

\n CERT=$(echo $line | awk -F ' ' '{print $1}')

 

\n echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\" $MAIL -c $MAILCC

 

\n echo \"--> WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\"

 

\n NUMCRITICAL=$[$NUMCRITICAL +1]

 

\n fi

 

\ndone < \"$SCRIPTPATH\"expiringcerts.txt

 

\necho \"Check for almost expired certificates done!\"

 

\n

 

\n

 

\necho -e \"\\nCertification check done!\"

 

\n

 

\n

 

\nSend a status email:

 

\necho -e \"Hi David\\n\\nYour script did its job!!\\n\\nNumber of newly reported certificates: '$NUMREPORTED'\\nNumber of already flagged certificates: '$NUMFLAGGED'\\nNumber of critical certificates: '$NUMCRITICAL'\\n\\nYours Sincerely\\nThe BIG-IP\" | mail -s \"Everthing went well!\" $MAILCC

 

\n

 

\n

 

\nelse

 

\necho \"Unit is standby. No action taken!\"

 

\nfi

 

\n

___________________

 

\n

Feel free to comment on anything! :)

 

\n

 

\n

Thanks,

 

\n

David

 

","body@stringLength":"6701","rawBody":"

Hi guys

 

\n

Most of you have probably been in the situation where a certificate suddenly expired without anyone noticing (or at least no one took proper action). I was in that situation a couple of weeks ago. I asked Lord Google if someone had a good method of detecting certificate expiration automatically. I didn't really find anything relevant, except for a couple of SOLs from F5 regarding the checkcert utility. So I sat down and did some scripting myself. I'm pretty satisfied with the result, however, this is my first real bash script so you can probably find something that could be optimized or done in a better way.

 

\n

So first of all the scripts checks if the device is the active box. If it is not, the script does nothing, but if is, the script creates a list of all expiring certificates and places them in expiringcerts.txt. This file is then checked and each line is reported separately to our servicedesk (which in return creates a case and escalates it directly to network operations). When a certificate has been reported it is put in the flaggedcerts.txt. This file ensures that a certificate is not reported multiple times, unless it is less than a week from expiring. In this case a new mail is send each time the script is ran (in our case, it is put in /etc/crontab and configured to run every day at 12 pm/noon).

 

\n

If a certificate is deleted, expired or renewed it is no longer put in the expiringcerts.txt file and is therefore also removed from the flaggedcerts.txt file.

 

\n

In the end a status mail is sent to me each day to ensure that the check ran as it should. This is just me that like to be absolutely sure that the script does its job.

 

\n

___________________________

 

\n

!/bin/bash

 

\nAuthor: dadalife

 

\n

 

\n

 

\nCheck if unit is active and if it is the script should continue:

 

\nACTIVE=$(tmsh show cm failover-status | grep ACTIVE | wc -l)

 

\nif (($ACTIVE == 1)); then

 

\necho -e \"Unit is active. Proceeding...\\n\"

 

\n

 

\n

 

\nSCRIPTPATH='/root/'

 

\nMAIL='servicedesk@atea.dk'

 

\nMAILCC='dada@atea.dk'

 

\nNUMREPORTED=0

 

\nNUMFLAGGED=0

 

\nNUMCRITICAL=0

 

\n

 

\n

 

\nCreate a list of all expiring certificates:

 

\ntmsh run sys crypto check-cert | grep 'will expired' | awk -F 'in file' '{print $2}' | awk -F ' GMT' '{print $1}' > \"$SCRIPTPATH\"expiringcerts.txt

 

\necho \"A list of all expiring certificates has been created!\"

 

\n

 

\n

 

\nSend an email for each certificate if it has not already been sent:

 

\necho -e \"\\nChecking for expiring certificates...\"

 

\n> \"$SCRIPTPATH\"tempflagged.txt

 

\nwhile read line; do

 

\n BODY=\"\\n\\nPlease create this case as an incident (Priority 3) under the customer CNM and escalate directly to OPNOM.\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"

 

\n CERT=$(echo $line | awk -F ' ' '{print $1}')

 

\n CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')

 

\n FLAGGED=$(cat \"$SCRIPTPATH\"flaggedcerts.txt | grep $CERT | wc -l)

 

\n if (( $FLAGGED == 0)); then

 

\n echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt

 

\n echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"$CERT expires on $CERTEXPIRE GMT\" $MAIL -c $MAILCC

 

\n echo \"--> $CERT reported to servicedesk.\"

 

\n NUMREPORTED=$[$NUMREPORTED +1]

 

\n else

 

\n echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt

 

\n echo \"--> $CERT has already been flagged\"

 

\n NUMFLAGGED=$[$NUMFLAGGED +1]

 

\n fi

 

\ndone < \"$SCRIPTPATH\"expiringcerts.txt

 

\ncp \"$SCRIPTPATH\"tempflagged.txt \"$SCRIPTPATH\"flaggedcerts.txt

 

\necho -e \"Check for expiring certificates done!\"

 

\n

 

\n

 

\nCheck if a certificate is less than a week from expiring:

 

\nCURRENTTIMEEPOCH=$(date +%s)

 

\necho -e \"\\nChecking for almost expired certificates...\"

 

\nwhile read line; do

 

\n CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')

 

\n CERTEXPIREEPOCH=$(date --date=\"$CERTEXPIRE\" +%s)

 

\n CERTEXPIREDIFF=$(expr $CERTEXPIREEPOCH - $CURRENTTIMEEPOCH)

 

\n if (($CERTEXPIREDIFF < 604800)); then

 

\n BODY=\"\\n\\nPlease create this case as an incident (Priority 1) under the customer CNM and escalate directly to OPNOM.\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"

 

\n CERT=$(echo $line | awk -F ' ' '{print $1}')

 

\n echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\" $MAIL -c $MAILCC

 

\n echo \"--> WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\"

 

\n NUMCRITICAL=$[$NUMCRITICAL +1]

 

\n fi

 

\ndone < \"$SCRIPTPATH\"expiringcerts.txt

 

\necho \"Check for almost expired certificates done!\"

 

\n

 

\n

 

\necho -e \"\\nCertification check done!\"

 

\n

 

\n

 

\nSend a status email:

 

\necho -e \"Hi David\\n\\nYour script did its job!!\\n\\nNumber of newly reported certificates: '$NUMREPORTED'\\nNumber of already flagged certificates: '$NUMFLAGGED'\\nNumber of critical certificates: '$NUMCRITICAL'\\n\\nYours Sincerely\\nThe BIG-IP\" | mail -s \"Everthing went well!\" $MAILCC

 

\n

 

\n

 

\nelse

 

\necho \"Unit is standby. No action taken!\"

 

\nfi

 

\n

___________________

 

\n

Feel free to comment on anything! :)

 

\n

 

\n

Thanks,

 

\n

David

 

","kudosSumWeight":0,"postTime":"2013-07-24T17:03:50.000-07:00","images":{"__typename":"AssociatedImageConnection","edges":[],"totalCount":0,"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}},"attachments":{"__typename":"AttachmentConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"tags":{"__typename":"TagConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"TagEdge","cursor":"MjUuMXwyLjF8b3wxMHxfTlZffDE","node":{"__typename":"Tag","id":"tag:management","text":"management","time":"2022-01-24T02:29:45.160-08:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}},{"__typename":"TagEdge","cursor":"MjUuMXwyLjF8b3wxMHxfTlZffDI","node":{"__typename":"Tag","id":"tag:monitoring","text":"monitoring","time":"2022-01-24T02:29:45.162-08:00","lastActivityTime":null,"messagesCount":null,"followersCount":null}}]},"timeToRead":4,"currentRevision":{"__ref":"Revision:revision:107068_1"},"latestVersion":null,"metrics":{"__typename":"MessageMetrics","views":3308},"visibilityScope":"PUBLIC","canonicalUrl":null,"seoTitle":null,"seoDescription":null,"isEscalated":null,"placeholder":false,"originalMessageForPlaceholder":null,"messagePolicies":{"__typename":"MessagePolicies","canModerateSpamMessage":{"__typename":"PolicyResult","failureReason":{"__typename":"FailureReason","message":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","key":"error.lithium.policies.feature.moderation_spam.action.moderate_entity.allowed.accessDenied","args":[]}}},"archivalData":null,"searchSnippet":"Hi guys   \n Most of you have probably been in the situation where a certificate suddenly expired without anyone noticing (or at least no one took proper action). I was in that situation a coupl...","replies":{"__typename":"MessageConnection","edges":[{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDY5","node":{"__ref":"ForumReplyMessage:message:107069"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDcw","node":{"__ref":"ForumReplyMessage:message:107070"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDc0","node":{"__ref":"ForumReplyMessage:message:107074"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDc1","node":{"__ref":"ForumReplyMessage:message:107075"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDc2","node":{"__ref":"ForumReplyMessage:message:107076"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDc3","node":{"__ref":"ForumReplyMessage:message:107077"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDc4","node":{"__ref":"ForumReplyMessage:message:107078"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDc5","node":{"__ref":"ForumReplyMessage:message:107079"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDgw","node":{"__ref":"ForumReplyMessage:message:107080"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDgx","node":{"__ref":"ForumReplyMessage:message:107081"}}],"pageInfo":{"__typename":"PageInfo","hasNextPage":true,"endCursor":"MjUuMXwyLjF8aXwxMHwzOToxfGludCwxMDcwNjksMTA3MDgx","hasPreviousPage":false,"startCursor":null}},"customFields":[]},"Conversation:conversation:107068":{"__typename":"Conversation","id":"conversation:107068","solved":false,"topic":{"__ref":"ForumTopicMessage:message:107068"},"lastPostingActivityTime":"2018-11-18T02:01:40.000-08:00","lastPostTime":"2018-11-18T02:01:40.000-08:00","unreadReplyCount":21,"isSubscribed":false},"ModerationData:moderation_data:107068":{"__typename":"ModerationData","id":"moderation_data:107068","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"Revision:revision:107068_1":{"__typename":"Revision","id":"revision:107068_1","lastEditTime":"2013-07-24T17:03:50.000-07:00"},"CachedAsset:theme:customTheme1-1740169842336":{"__typename":"CachedAsset","id":"theme:customTheme1-1740169842336","value":{"id":"customTheme1","animation":{"fast":"150ms","normal":"250ms","slow":"500ms","slowest":"750ms","function":"cubic-bezier(0.07, 0.91, 0.51, 1)","__typename":"AnimationThemeSettings"},"avatar":{"borderRadius":"50%","collections":["custom"],"__typename":"AvatarThemeSettings"},"basics":{"browserIcon":{"imageAssetName":"JimmyPackets-512-1702592938213.png","imageLastModified":"1702592945815","__typename":"ThemeAsset"},"customerLogo":{"imageAssetName":"f5_logo_fix-1704824537976.svg","imageLastModified":"1704824540697","__typename":"ThemeAsset"},"maximumWidthOfPageContent":"1600px","oneColumnNarrowWidth":"800px","gridGutterWidthMd":"30px","gridGutterWidthXs":"10px","pageWidthStyle":"WIDTH_OF_PAGE_CONTENT","__typename":"BasicsThemeSettings"},"buttons":{"borderRadiusSm":"5px","borderRadius":"5px","borderRadiusLg":"5px","paddingY":"5px","paddingYLg":"7px","paddingYHero":"var(--lia-bs-btn-padding-y-lg)","paddingX":"12px","paddingXLg":"14px","paddingXHero":"42px","fontStyle":"NORMAL","fontWeight":"400","textTransform":"NONE","disabledOpacity":0.5,"primaryTextColor":"var(--lia-bs-white)","primaryTextHoverColor":"var(--lia-bs-white)","primaryTextActiveColor":"var(--lia-bs-white)","primaryBgColor":"var(--lia-bs-primary)","primaryBgHoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.85))","primaryBgActiveColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) * 0.7))","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","primaryBorderActive":"1px solid transparent","primaryBorderFocus":"1px solid var(--lia-bs-white)","primaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","secondaryTextColor":"var(--lia-bs-gray-900)","secondaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","secondaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","secondaryBgColor":"var(--lia-bs-gray-400)","secondaryBgHoverColor":"hsl(var(--lia-bs-gray-400-h), var(--lia-bs-gray-400-s), calc(var(--lia-bs-gray-400-l) * 0.96))","secondaryBgActiveColor":"hsl(var(--lia-bs-gray-400-h), var(--lia-bs-gray-400-s), calc(var(--lia-bs-gray-400-l) * 0.92))","secondaryBorder":"1px solid transparent","secondaryBorderHover":"1px solid transparent","secondaryBorderActive":"1px solid transparent","secondaryBorderFocus":"1px solid transparent","secondaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","tertiaryTextColor":"var(--lia-bs-gray-900)","tertiaryTextHoverColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.95))","tertiaryTextActiveColor":"hsl(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), calc(var(--lia-bs-gray-900-l) * 0.9))","tertiaryBgColor":"transparent","tertiaryBgHoverColor":"transparent","tertiaryBgActiveColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.04)","tertiaryBorder":"1px solid transparent","tertiaryBorderHover":"1px solid hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","tertiaryBorderActive":"1px solid transparent","tertiaryBorderFocus":"1px solid transparent","tertiaryBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","destructiveTextColor":"var(--lia-bs-danger)","destructiveTextHoverColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.95))","destructiveTextActiveColor":"hsl(var(--lia-bs-danger-h), var(--lia-bs-danger-s), calc(var(--lia-bs-danger-l) * 0.9))","destructiveBgColor":"var(--lia-bs-gray-300)","destructiveBgHoverColor":"hsl(var(--lia-bs-gray-300-h), var(--lia-bs-gray-300-s), calc(var(--lia-bs-gray-300-l) * 0.96))","destructiveBgActiveColor":"hsl(var(--lia-bs-gray-300-h), var(--lia-bs-gray-300-s), calc(var(--lia-bs-gray-300-l) * 0.92))","destructiveBorder":"1px solid transparent","destructiveBorderHover":"1px solid transparent","destructiveBorderActive":"1px solid transparent","destructiveBorderFocus":"1px solid transparent","destructiveBoxShadowFocus":"0 0 0 1px var(--lia-bs-primary), 0 0 0 4px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","__typename":"ButtonsThemeSettings"},"border":{"color":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","mainContent":"NONE","sideContent":"NONE","radiusSm":"3px","radius":"5px","radiusLg":"9px","radius50":"100vw","__typename":"BorderThemeSettings"},"boxShadow":{"xs":"0 0 0 1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08), 0 3px 0 -1px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.08)","sm":"0 2px 4px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.06)","md":"0 5px 15px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.15)","lg":"0 10px 30px hsla(var(--lia-bs-gray-900-h), var(--lia-bs-gray-900-s), var(--lia-bs-gray-900-l), 0.15)","__typename":"BoxShadowThemeSettings"},"cards":{"bgColor":"var(--lia-panel-bg-color)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":"var(--lia-box-shadow-xs)","__typename":"CardsThemeSettings"},"chip":{"maxWidth":"300px","height":"30px","__typename":"ChipThemeSettings"},"coreTypes":{"defaultMessageLinkColor":"var(--lia-bs-primary)","defaultMessageLinkDecoration":"none","defaultMessageLinkFontStyle":"NORMAL","defaultMessageLinkFontWeight":"400","defaultMessageFontStyle":"NORMAL","defaultMessageFontWeight":"400","forumColor":"#0C5C8D","forumFontFamily":"var(--lia-bs-font-family-base)","forumFontWeight":"var(--lia-default-message-font-weight)","forumLineHeight":"var(--lia-bs-line-height-base)","forumFontStyle":"var(--lia-default-message-font-style)","forumMessageLinkColor":"var(--lia-default-message-link-color)","forumMessageLinkDecoration":"var(--lia-default-message-link-decoration)","forumMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","forumMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","forumSolvedColor":"#62C026","blogColor":"#730015","blogFontFamily":"var(--lia-bs-font-family-base)","blogFontWeight":"var(--lia-default-message-font-weight)","blogLineHeight":"1.75","blogFontStyle":"var(--lia-default-message-font-style)","blogMessageLinkColor":"var(--lia-default-message-link-color)","blogMessageLinkDecoration":"var(--lia-default-message-link-decoration)","blogMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","blogMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","tkbColor":"#C20025","tkbFontFamily":"var(--lia-bs-font-family-base)","tkbFontWeight":"var(--lia-default-message-font-weight)","tkbLineHeight":"1.75","tkbFontStyle":"var(--lia-default-message-font-style)","tkbMessageLinkColor":"var(--lia-default-message-link-color)","tkbMessageLinkDecoration":"var(--lia-default-message-link-decoration)","tkbMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","tkbMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaColor":"#4099E2","qandaFontFamily":"var(--lia-bs-font-family-base)","qandaFontWeight":"var(--lia-default-message-font-weight)","qandaLineHeight":"var(--lia-bs-line-height-base)","qandaFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkColor":"var(--lia-default-message-link-color)","qandaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","qandaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","qandaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","qandaSolvedColor":"#3FA023","ideaColor":"#F3704B","ideaFontFamily":"var(--lia-bs-font-family-base)","ideaFontWeight":"var(--lia-default-message-font-weight)","ideaLineHeight":"var(--lia-bs-line-height-base)","ideaFontStyle":"var(--lia-default-message-font-style)","ideaMessageLinkColor":"var(--lia-default-message-link-color)","ideaMessageLinkDecoration":"var(--lia-default-message-link-decoration)","ideaMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","ideaMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","contestColor":"#FCC845","contestFontFamily":"var(--lia-bs-font-family-base)","contestFontWeight":"var(--lia-default-message-font-weight)","contestLineHeight":"var(--lia-bs-line-height-base)","contestFontStyle":"var(--lia-default-message-link-font-style)","contestMessageLinkColor":"var(--lia-default-message-link-color)","contestMessageLinkDecoration":"var(--lia-default-message-link-decoration)","contestMessageLinkFontStyle":"ITALIC","contestMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","occasionColor":"#EE4B5B","occasionFontFamily":"var(--lia-bs-font-family-base)","occasionFontWeight":"var(--lia-default-message-font-weight)","occasionLineHeight":"var(--lia-bs-line-height-base)","occasionFontStyle":"var(--lia-default-message-font-style)","occasionMessageLinkColor":"var(--lia-default-message-link-color)","occasionMessageLinkDecoration":"var(--lia-default-message-link-decoration)","occasionMessageLinkFontStyle":"var(--lia-default-message-link-font-style)","occasionMessageLinkFontWeight":"var(--lia-default-message-link-font-weight)","grouphubColor":"#491B62","categoryColor":"#949494","communityColor":"#FFFFFF","productColor":"#949494","__typename":"CoreTypesThemeSettings"},"colors":{"black":"#000000","white":"#FFFFFF","gray100":"#F7F7F7","gray200":"#F7F7F7","gray300":"#E8E8E8","gray400":"#D9D9D9","gray500":"#CCCCCC","gray600":"#949494","gray700":"#707070","gray800":"#545454","gray900":"#333333","dark":"#545454","light":"#F7F7F7","primary":"#0C5C8D","secondary":"#333333","bodyText":"#222222","bodyBg":"#F5F5F5","info":"#1D9CD3","success":"#62C026","warning":"#FFD651","danger":"#C20025","alertSystem":"#FF6600","textMuted":"#707070","highlight":"#FFFCAD","outline":"var(--lia-bs-primary)","custom":["#C20025","#081B85","#009639","#B3C6D7","#7CC0EB","#F29A36"],"__typename":"ColorsThemeSettings"},"divider":{"size":"3px","marginLeft":"4px","marginRight":"4px","borderRadius":"50%","bgColor":"var(--lia-bs-gray-600)","bgColorActive":"var(--lia-bs-gray-600)","__typename":"DividerThemeSettings"},"dropdown":{"fontSize":"var(--lia-bs-font-size-sm)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius-sm)","dividerBg":"var(--lia-bs-gray-300)","itemPaddingY":"5px","itemPaddingX":"20px","headerColor":"var(--lia-bs-gray-700)","__typename":"DropdownThemeSettings"},"email":{"link":{"color":"#0069D4","hoverColor":"#0061c2","decoration":"none","hoverDecoration":"underline","__typename":"EmailLinkSettings"},"border":{"color":"#e4e4e4","__typename":"EmailBorderSettings"},"buttons":{"borderRadiusLg":"5px","paddingXLg":"16px","paddingYLg":"7px","fontWeight":"700","primaryTextColor":"#ffffff","primaryTextHoverColor":"#ffffff","primaryBgColor":"#0069D4","primaryBgHoverColor":"#005cb8","primaryBorder":"1px solid transparent","primaryBorderHover":"1px solid transparent","__typename":"EmailButtonsSettings"},"panel":{"borderRadius":"5px","borderColor":"#e4e4e4","__typename":"EmailPanelSettings"},"__typename":"EmailThemeSettings"},"emoji":{"skinToneDefault":"#ffcd43","skinToneLight":"#fae3c5","skinToneMediumLight":"#e2cfa5","skinToneMedium":"#daa478","skinToneMediumDark":"#a78058","skinToneDark":"#5e4d43","__typename":"EmojiThemeSettings"},"heading":{"color":"var(--lia-bs-body-color)","fontFamily":"Inter","fontStyle":"NORMAL","fontWeight":"600","h1FontSize":"30px","h2FontSize":"25px","h3FontSize":"20px","h4FontSize":"18px","h5FontSize":"16px","h6FontSize":"16px","lineHeight":"1.2","subHeaderFontSize":"11px","subHeaderFontWeight":"500","h1LetterSpacing":"normal","h2LetterSpacing":"normal","h3LetterSpacing":"normal","h4LetterSpacing":"normal","h5LetterSpacing":"normal","h6LetterSpacing":"normal","subHeaderLetterSpacing":"2px","h1FontWeight":"var(--lia-bs-headings-font-weight)","h2FontWeight":"var(--lia-bs-headings-font-weight)","h3FontWeight":"var(--lia-bs-headings-font-weight)","h4FontWeight":"var(--lia-bs-headings-font-weight)","h5FontWeight":"var(--lia-bs-headings-font-weight)","h6FontWeight":"var(--lia-bs-headings-font-weight)","__typename":"HeadingThemeSettings"},"icons":{"size10":"10px","size12":"12px","size14":"14px","size16":"16px","size20":"20px","size24":"24px","size30":"30px","size40":"40px","size50":"50px","size60":"60px","size80":"80px","size120":"120px","size160":"160px","__typename":"IconsThemeSettings"},"imagePreview":{"bgColor":"var(--lia-bs-gray-900)","titleColor":"var(--lia-bs-white)","controlColor":"var(--lia-bs-white)","controlBgColor":"var(--lia-bs-gray-800)","__typename":"ImagePreviewThemeSettings"},"input":{"borderColor":"var(--lia-bs-gray-600)","disabledColor":"var(--lia-bs-gray-600)","focusBorderColor":"var(--lia-bs-primary)","labelMarginBottom":"10px","btnFontSize":"var(--lia-bs-font-size-sm)","focusBoxShadow":"0 0 0 3px hsla(var(--lia-bs-primary-h), var(--lia-bs-primary-s), var(--lia-bs-primary-l), 0.2)","checkLabelMarginBottom":"2px","checkboxBorderRadius":"3px","borderRadiusSm":"var(--lia-bs-border-radius-sm)","borderRadius":"var(--lia-bs-border-radius)","borderRadiusLg":"var(--lia-bs-border-radius-lg)","formTextMarginTop":"4px","textAreaBorderRadius":"var(--lia-bs-border-radius)","activeFillColor":"var(--lia-bs-primary)","__typename":"InputThemeSettings"},"loading":{"dotDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.2)","dotLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.5)","barDarkColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.06)","barLightColor":"hsla(var(--lia-bs-white-h), var(--lia-bs-white-s), var(--lia-bs-white-l), 0.4)","__typename":"LoadingThemeSettings"},"link":{"color":"var(--lia-bs-primary)","hoverColor":"hsl(var(--lia-bs-primary-h), var(--lia-bs-primary-s), calc(var(--lia-bs-primary-l) - 10%))","decoration":"none","hoverDecoration":"underline","__typename":"LinkThemeSettings"},"listGroup":{"itemPaddingY":"15px","itemPaddingX":"15px","borderColor":"var(--lia-bs-gray-300)","__typename":"ListGroupThemeSettings"},"modal":{"contentTextColor":"var(--lia-bs-body-color)","contentBg":"var(--lia-bs-white)","backgroundBg":"var(--lia-bs-black)","smSize":"440px","mdSize":"760px","lgSize":"1080px","backdropOpacity":0.3,"contentBoxShadowXs":"var(--lia-bs-box-shadow-sm)","contentBoxShadow":"var(--lia-bs-box-shadow)","headerFontWeight":"700","__typename":"ModalThemeSettings"},"navbar":{"position":"FIXED","background":{"attachment":null,"clip":null,"color":"var(--lia-bs-white)","imageAssetName":null,"imageLastModified":"0","origin":null,"position":"CENTER_CENTER","repeat":"NO_REPEAT","size":"COVER","__typename":"BackgroundProps"},"backgroundOpacity":0.8,"paddingTop":"15px","paddingBottom":"15px","borderBottom":"1px solid var(--lia-bs-border-color)","boxShadow":"var(--lia-bs-box-shadow-sm)","brandMarginRight":"30px","brandMarginRightSm":"10px","brandLogoHeight":"30px","linkGap":"10px","linkJustifyContent":"flex-start","linkPaddingY":"5px","linkPaddingX":"10px","linkDropdownPaddingY":"9px","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkColor":"var(--lia-bs-body-color)","linkHoverColor":"var(--lia-bs-primary)","linkFontSize":"var(--lia-bs-font-size-sm)","linkFontStyle":"NORMAL","linkFontWeight":"400","linkTextTransform":"NONE","linkLetterSpacing":"normal","linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkBgColor":"transparent","linkBgHoverColor":"transparent","linkBorder":"none","linkBorderHover":"none","linkBoxShadow":"none","linkBoxShadowHover":"none","linkTextBorderBottom":"none","linkTextBorderBottomHover":"none","dropdownPaddingTop":"10px","dropdownPaddingBottom":"15px","dropdownPaddingX":"10px","dropdownMenuOffset":"2px","dropdownDividerMarginTop":"10px","dropdownDividerMarginBottom":"10px","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","controllerIconColor":"var(--lia-bs-body-color)","controllerIconHoverColor":"var(--lia-bs-body-color)","controllerTextColor":"var(--lia-nav-controller-icon-color)","controllerTextHoverColor":"var(--lia-nav-controller-icon-hover-color)","controllerHighlightColor":"hsla(30, 100%, 50%)","controllerHighlightTextColor":"var(--lia-yiq-light)","controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerColor":"var(--lia-nav-controller-icon-color)","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","hamburgerBgColor":"transparent","hamburgerBgHoverColor":"transparent","hamburgerBorder":"none","hamburgerBorderHover":"none","collapseMenuMarginLeft":"20px","collapseMenuDividerBg":"var(--lia-nav-link-color)","collapseMenuDividerOpacity":0.16,"__typename":"NavbarThemeSettings"},"pager":{"textColor":"var(--lia-bs-link-color)","textFontWeight":"var(--lia-font-weight-md)","textFontSize":"var(--lia-bs-font-size-sm)","__typename":"PagerThemeSettings"},"panel":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-bs-border-radius)","borderColor":"var(--lia-bs-border-color)","boxShadow":"none","__typename":"PanelThemeSettings"},"popover":{"arrowHeight":"8px","arrowWidth":"16px","maxWidth":"300px","minWidth":"100px","headerBg":"var(--lia-bs-white)","borderColor":"var(--lia-bs-border-color)","borderRadius":"var(--lia-bs-border-radius)","boxShadow":"0 0.5rem 1rem hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.15)","__typename":"PopoverThemeSettings"},"prism":{"color":"#000000","bgColor":"#f5f2f0","fontFamily":"var(--font-family-monospace)","fontSize":"var(--lia-bs-font-size-base)","fontWeightBold":"var(--lia-bs-font-weight-bold)","fontStyleItalic":"italic","tabSize":2,"highlightColor":"#b3d4fc","commentColor":"#62707e","punctuationColor":"#6f6f6f","namespaceOpacity":"0.7","propColor":"#990055","selectorColor":"#517a00","operatorColor":"#906736","operatorBgColor":"hsla(0, 0%, 100%, 0.5)","keywordColor":"#0076a9","functionColor":"#d3284b","variableColor":"#c14700","__typename":"PrismThemeSettings"},"rte":{"bgColor":"var(--lia-bs-white)","borderRadius":"var(--lia-panel-border-radius)","boxShadow":" var(--lia-panel-box-shadow)","customColor1":"#bfedd2","customColor2":"#fbeeb8","customColor3":"#f8cac6","customColor4":"#eccafa","customColor5":"#c2e0f4","customColor6":"#2dc26b","customColor7":"#f1c40f","customColor8":"#e03e2d","customColor9":"#b96ad9","customColor10":"#3598db","customColor11":"#169179","customColor12":"#e67e23","customColor13":"#ba372a","customColor14":"#843fa1","customColor15":"#236fa1","customColor16":"#ecf0f1","customColor17":"#ced4d9","customColor18":"#95a5a6","customColor19":"#7e8c8d","customColor20":"#34495e","customColor21":"#000000","customColor22":"#ffffff","defaultMessageHeaderMarginTop":"14px","defaultMessageHeaderMarginBottom":"10px","defaultMessageItemMarginTop":"0","defaultMessageItemMarginBottom":"10px","diffAddedColor":"hsla(170, 53%, 51%, 0.4)","diffChangedColor":"hsla(43, 97%, 63%, 0.4)","diffNoneColor":"hsla(0, 0%, 80%, 0.4)","diffRemovedColor":"hsla(9, 74%, 47%, 0.4)","specialMessageHeaderMarginTop":"14px","specialMessageHeaderMarginBottom":"10px","specialMessageItemMarginTop":"0","specialMessageItemMarginBottom":"10px","__typename":"RteThemeSettings"},"tags":{"bgColor":"var(--lia-bs-gray-200)","bgHoverColor":"var(--lia-bs-gray-400)","borderRadius":"var(--lia-bs-border-radius-sm)","color":"var(--lia-bs-body-color)","hoverColor":"var(--lia-bs-body-color)","fontWeight":"var(--lia-font-weight-md)","fontSize":"var(--lia-font-size-xxs)","textTransform":"UPPERCASE","letterSpacing":"0.5px","__typename":"TagsThemeSettings"},"toasts":{"borderRadius":"var(--lia-bs-border-radius)","paddingX":"12px","__typename":"ToastsThemeSettings"},"typography":{"fontFamilyBase":"Atkinson Hyperlegible","fontStyleBase":"NORMAL","fontWeightBase":"400","fontWeightLight":"300","fontWeightNormal":"400","fontWeightMd":"500","fontWeightBold":"700","letterSpacingSm":"normal","letterSpacingXs":"normal","lineHeightBase":"1.3","fontSizeBase":"15px","fontSizeXxs":"11px","fontSizeXs":"12px","fontSizeSm":"13px","fontSizeLg":"20px","fontSizeXl":"24px","smallFontSize":"14px","customFonts":[],"__typename":"TypographyThemeSettings"},"unstyledListItem":{"marginBottomSm":"5px","marginBottomMd":"10px","marginBottomLg":"15px","marginBottomXl":"20px","marginBottomXxl":"25px","__typename":"UnstyledListItemThemeSettings"},"yiq":{"light":"#ffffff","dark":"#000000","__typename":"YiqThemeSettings"},"colorLightness":{"primaryDark":0.36,"primaryLight":0.74,"primaryLighter":0.89,"primaryLightest":0.95,"infoDark":0.39,"infoLight":0.72,"infoLighter":0.85,"infoLightest":0.93,"successDark":0.24,"successLight":0.62,"successLighter":0.8,"successLightest":0.91,"warningDark":0.39,"warningLight":0.68,"warningLighter":0.84,"warningLightest":0.93,"dangerDark":0.41,"dangerLight":0.72,"dangerLighter":0.89,"dangerLightest":0.95,"__typename":"ColorLightnessThemeSettings"},"localOverride":false,"__typename":"Theme"},"localOverride":false},"CachedAsset:text:en_US-components/common/EmailVerification-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/common/EmailVerification-1740415737689","value":{"email.verification.title":"Email Verification Required","email.verification.message.update.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. To change your email, visit My Settings.","email.verification.message.resend.email":"To participate in the community, you must first verify your email address. The verification email was sent to {email}. Resend email."},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Loading/LoadingDot-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Loading/LoadingDot-1740415737689","value":{"title":"Loading..."},"localOverride":false},"CachedAsset:quilt:f5.prod:pages/forums/ForumMessagePage:board:TechnicalForum-1740169840560":{"__typename":"CachedAsset","id":"quilt:f5.prod:pages/forums/ForumMessagePage:board:TechnicalForum-1740169840560","value":{"id":"ForumMessagePage","container":{"id":"Common","headerProps":{"backgroundImageProps":null,"backgroundColor":null,"addComponents":null,"removeComponents":["community.widget.bannerWidget"],"componentOrder":null,"__typename":"QuiltContainerSectionProps"},"headerComponentProps":{"community.widget.breadcrumbWidget":{"disableLastCrumbForDesktop":false}},"footerProps":null,"footerComponentProps":null,"items":[{"id":"message-list","layout":"MAIN_SIDE","bgColor":null,"showTitle":null,"showDescription":null,"textPosition":null,"textColor":null,"sectionEditLevel":null,"bgImage":null,"disableSpacing":null,"edgeToEdgeDisplay":null,"fullHeight":null,"showBorder":null,"__typename":"MainSideQuiltSection","columnMap":{"main":[{"id":"messages.widget.topicWithThreadedReplyListWidget","className":"lia-topic-with-replies","props":{"editLevel":"CONFIGURE"},"__typename":"QuiltComponent"}],"side":[{"id":"featuredWidgets.widget.featuredContentWidget","className":null,"props":{"instanceId":"featuredWidgets.widget.featuredContentWidget-1705956211049","layoutProps":{"layout":"card","layoutOptions":{"useRepliesCount":false,"useAuthorRank":false,"useTimeToRead":true,"useKudosCount":false,"useViewCount":false,"usePreviewMedia":true,"useBody":false,"useCenteredCardContent":false,"useTags":true,"useTimestamp":false,"useBoardLink":true,"useAuthorLink":false,"useSolvedBadge":true}},"titleSrOnly":false,"showPager":true,"pageSize":3,"lazyLoad":false},"__typename":"QuiltComponent"},{"id":"messages.widget.messageListForNodeByRecentActivityWidget","className":null,"props":{"hideIfEmpty":true,"pageSize":5,"pagerVariant":{"type":"loadMore"},"viewVariant":{"type":"inline","props":{"useRepliesCount":false,"useMedia":false,"useAuthorRank":false,"useNode":false,"boardIconSize":"24","truncateBodyLength":-1,"useNodeLink":true,"usePreviewMedia":false,"timeStampType":"conversation.lastPostingActivityTime","avatarSize":"40","useTextBody":true,"useSolvedBadge":true,"subjectAs":"h6","renderPostTimeBeforeAuthor":true,"useAvatar":false,"useTimeToRead":false,"useSpoilerFreeBody":true,"useKudosCount":false,"useViewCount":false,"useBody":false,"useTags":false,"clampSubjectLines":1,"useBoardIcon":true,"useMessageTimeLink":true,"clampBodyLines":3,"useAuthorLogin":true,"useUnreadCount":false,"useNodeHoverCard":true,"useSearchSnippet":false}},"lazyLoad":false,"listVariant":{"type":"unstyled","props":{"listItemSpacing":"xxl"}},"useTitle":true,"addTags":false,"titleContextVariant":"other","showTabs":false,"style":"compact","panelType":"standard","sorts":{"conversationLastPostingActivityTime":{"direction":"DESC"}}},"__typename":"QuiltComponent"},{"id":"messages.widget.relatedContentWidget","className":null,"props":{"hideIfEmpty":true,"enablePagination":false,"useTitle":true,"listVariant":{"type":"unstyled","props":{"listItemSpacing":"xxl"}},"pageSize":5,"style":"compact","pagerVariant":{"type":"none"},"viewVariant":{"type":"inline","props":{"useRepliesCount":false,"useMedia":false,"useAuthorRank":false,"useNode":false,"boardIconSize":"24","useAuthorLoginLink":true,"useNodeLink":true,"usePreviewMedia":true,"timeStampType":"postTime","useTextBody":true,"useSolvedBadge":false,"subjectAs":"h6","renderPostTimeBeforeAuthor":true,"useAvatar":false,"useVideoPreview":false,"portraitClampBodyLines":3,"useCompactSpacing":true,"useTimeToRead":false,"useSpoilerFreeBody":true,"useKudosCount":false,"useViewCount":false,"useBody":false,"useTags":false,"clampSubjectLines":1,"useBoardIcon":true,"useMessageTimeLink":true,"useAuthorLogin":true}},"lazyLoad":false,"panelType":"standard"},"__typename":"QuiltComponent"},{"id":"custom.widget.Community_Quicklinks","className":null,"props":{"customComponentId":"custom.widget.Community_Quicklinks"},"__typename":"QuiltComponent"}],"__typename":"MainSideSectionColumns"}}],"__typename":"QuiltContainer"},"__typename":"Quilt","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-pages/forums/ForumMessagePage-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-pages/forums/ForumMessagePage-1740415737689","value":{"title":"{contextMessageSubject} | {communityTitle}","errorMissing":"This message cannot be found","name":"Forum Message Page","section.message-list.title":"Forum Discussion","archivedMessageTitle":"This Content Has Been Archived"},"localOverride":false},"CachedAsset:quiltWrapper:f5.prod:Common:1740415737746":{"__typename":"CachedAsset","id":"quiltWrapper:f5.prod:Common:1740415737746","value":{"id":"Common","header":{"backgroundImageProps":{"assetName":"header.jpg","backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"LEFT_CENTER","lastModified":"1702932449000","__typename":"BackgroundImageProps"},"backgroundColor":"transparent","items":[{"id":"custom.widget.Beta_MetaNav","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"community.widget.navbarWidget","props":{"showUserName":false,"showRegisterLink":true,"style":{"boxShadow":"var(--lia-bs-box-shadow-sm)","linkFontWeight":"700","controllerHighlightColor":"hsla(30, 100%, 50%)","dropdownDividerMarginBottom":"10px","hamburgerBorderHover":"none","linkFontSize":"15px","linkBoxShadowHover":"none","backgroundOpacity":0.4,"controllerBorderRadius":"var(--lia-border-radius-50)","hamburgerBgColor":"transparent","linkTextBorderBottom":"none","hamburgerColor":"var(--lia-nav-controller-icon-color)","brandLogoHeight":"48px","linkLetterSpacing":"normal","linkBgHoverColor":"transparent","collapseMenuDividerOpacity":0.16,"paddingBottom":"10px","dropdownPaddingBottom":"15px","dropdownMenuOffset":"2px","hamburgerBgHoverColor":"transparent","borderBottom":"0","hamburgerBorder":"none","dropdownPaddingX":"10px","brandMarginRightSm":"10px","linkBoxShadow":"none","linkJustifyContent":"center","linkColor":"var(--lia-bs-primary)","collapseMenuDividerBg":"var(--lia-nav-link-color)","dropdownPaddingTop":"10px","controllerHighlightTextColor":"var(--lia-yiq-dark)","background":{"imageAssetName":"","color":"var(--lia-bs-white)","size":"COVER","repeat":"NO_REPEAT","position":"CENTER_CENTER","imageLastModified":""},"linkBorderRadius":"var(--lia-bs-border-radius-sm)","linkHoverColor":"var(--lia-bs-primary)","position":"FIXED","linkBorder":"none","linkTextBorderBottomHover":"2px solid #0C5C8D","brandMarginRight":"30px","hamburgerHoverColor":"var(--lia-nav-controller-icon-color)","linkBorderHover":"none","collapseMenuMarginLeft":"20px","linkFontStyle":"NORMAL","linkPaddingX":"10px","paddingTop":"10px","linkPaddingY":"5px","linkTextTransform":"NONE","dropdownBorderColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.08)","controllerBgHoverColor":"hsla(var(--lia-bs-black-h), var(--lia-bs-black-s), var(--lia-bs-black-l), 0.1)","linkDropdownPaddingX":"var(--lia-nav-link-px)","linkBgColor":"transparent","linkDropdownPaddingY":"9px","controllerIconColor":"#0C5C8D","dropdownDividerMarginTop":"10px","linkGap":"10px","controllerIconHoverColor":"#0C5C8D"},"links":{"sideLinks":[],"mainLinks":[{"children":[{"linkType":"INTERNAL","id":"migrated-link-1","params":{"boardId":"TechnicalForum","categoryId":"Forums"},"routeName":"ForumBoardPage"},{"linkType":"INTERNAL","id":"migrated-link-2","params":{"boardId":"WaterCooler","categoryId":"Forums"},"routeName":"ForumBoardPage"}],"linkType":"INTERNAL","id":"migrated-link-0","params":{"categoryId":"Forums"},"routeName":"CategoryPage"},{"children":[{"linkType":"INTERNAL","id":"migrated-link-4","params":{"boardId":"codeshare","categoryId":"CrowdSRC"},"routeName":"TkbBoardPage"},{"linkType":"INTERNAL","id":"migrated-link-5","params":{"boardId":"communityarticles","categoryId":"CrowdSRC"},"routeName":"TkbBoardPage"}],"linkType":"INTERNAL","id":"migrated-link-3","params":{"categoryId":"CrowdSRC"},"routeName":"CategoryPage"},{"children":[{"linkType":"INTERNAL","id":"migrated-link-7","params":{"boardId":"TechnicalArticles","categoryId":"Articles"},"routeName":"TkbBoardPage"},{"linkType":"INTERNAL","id":"article-series","params":{"boardId":"article-series","categoryId":"Articles"},"routeName":"TkbBoardPage"},{"linkType":"INTERNAL","id":"security-insights","params":{"boardId":"security-insights","categoryId":"Articles"},"routeName":"TkbBoardPage"},{"linkType":"INTERNAL","id":"migrated-link-8","params":{"boardId":"DevCentralNews","categoryId":"Articles"},"routeName":"TkbBoardPage"}],"linkType":"INTERNAL","id":"migrated-link-6","params":{"categoryId":"Articles"},"routeName":"CategoryPage"},{"children":[{"linkType":"INTERNAL","id":"migrated-link-10","params":{"categoryId":"CommunityGroups"},"routeName":"CategoryPage"},{"linkType":"INTERNAL","id":"migrated-link-11","params":{"categoryId":"F5-Groups"},"routeName":"CategoryPage"}],"linkType":"INTERNAL","id":"migrated-link-9","params":{"categoryId":"GroupsCategory"},"routeName":"CategoryPage"},{"children":[],"linkType":"INTERNAL","id":"migrated-link-12","params":{"boardId":"Events","categoryId":"top"},"routeName":"EventBoardPage"},{"children":[],"linkType":"INTERNAL","id":"migrated-link-13","params":{"boardId":"Suggestions","categoryId":"top"},"routeName":"IdeaBoardPage"},{"children":[],"linkType":"EXTERNAL","id":"Common-external-link","url":"https://community.f5.com/c/how-do-i","target":"SELF"}]},"className":"QuiltComponent_lia-component-edit-mode__lQ9Z6","showSearchIcon":false},"__typename":"QuiltComponent"},{"id":"community.widget.bannerWidget","props":{"backgroundColor":"transparent","visualEffects":{"showBottomBorder":false},"backgroundImageProps":{"backgroundSize":"COVER","backgroundPosition":"CENTER_CENTER","backgroundRepeat":"NO_REPEAT"},"fontColor":"#222222"},"__typename":"QuiltComponent"},{"id":"community.widget.breadcrumbWidget","props":{"backgroundColor":"var(--lia-bs-primary)","linkHighlightColor":"#FFFFFF","visualEffects":{"showBottomBorder":false},"backgroundOpacity":60,"linkTextColor":"#FFFFFF"},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"footer":{"backgroundImageProps":{"assetName":null,"backgroundSize":"COVER","backgroundRepeat":"NO_REPEAT","backgroundPosition":"CENTER_CENTER","lastModified":null,"__typename":"BackgroundImageProps"},"backgroundColor":"var(--lia-bs-body-color)","items":[{"id":"custom.widget.Beta_Footer","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Tag_Manager_Helper","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"},{"id":"custom.widget.Consent_Blackbar","props":{"widgetVisibility":"signedInOrAnonymous","useTitle":true,"useBackground":false,"title":"","lazyLoad":false},"__typename":"QuiltComponent"}],"__typename":"QuiltWrapperSection"},"__typename":"QuiltWrapper","localOverride":false},"localOverride":false},"CachedAsset:text:en_US-components/common/ActionFeedback-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/common/ActionFeedback-1740415737689","value":{"joinedGroupHub.title":"Welcome","joinedGroupHub.message":"You are now a member of this group and are subscribed to updates.","groupHubInviteNotFound.title":"Invitation Not Found","groupHubInviteNotFound.message":"Sorry, we could not find your invitation to the group. The owner may have canceled the invite.","groupHubNotFound.title":"Group Not Found","groupHubNotFound.message":"The grouphub you tried to join does not exist. It may have been deleted.","existingGroupHubMember.title":"Already Joined","existingGroupHubMember.message":"You are already a member of this group.","accountLocked.title":"Account Locked","accountLocked.message":"Your account has been locked due to multiple failed attempts. Try again in {lockoutTime} minutes.","editedGroupHub.title":"Changes Saved","editedGroupHub.message":"Your group has been updated.","leftGroupHub.title":"Goodbye","leftGroupHub.message":"You are no longer a member of this group and will not receive future updates.","deletedGroupHub.title":"Deleted","deletedGroupHub.message":"The group has been deleted.","groupHubCreated.title":"Group Created","groupHubCreated.message":"{groupHubName} is ready to use","accountClosed.title":"Account Closed","accountClosed.message":"The account has been closed and you will now be redirected to the homepage","resetTokenExpired.title":"Reset Password Link has Expired","resetTokenExpired.message":"Try resetting your password again","invalidUrl.title":"Invalid URL","invalidUrl.message":"The URL you're using is not recognized. Verify your URL and try again.","accountClosedForUser.title":"Account Closed","accountClosedForUser.message":"{userName}'s account is closed","inviteTokenInvalid.title":"Invitation Invalid","inviteTokenInvalid.message":"Your invitation to the community has been canceled or expired.","inviteTokenError.title":"Invitation Verification Failed","inviteTokenError.message":"The url you are utilizing is not recognized. Verify your URL and try again","pageNotFound.title":"Access Denied","pageNotFound.message":"You do not have access to this area of the community or it doesn't exist","eventAttending.title":"Responded as Attending","eventAttending.message":"You'll be notified when there's new activity and reminded as the event approaches","eventInterested.title":"Responded as Interested","eventInterested.message":"You'll be notified when there's new activity and reminded as the event approaches","eventNotFound.title":"Event Not Found","eventNotFound.message":"The event you tried to respond to does not exist.","redirectToRelatedPage.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.title":"Showing Related Content","redirectToRelatedPageForBaseUsers.message":"The content you are trying to access is archived","redirectToRelatedPage.message":"The content you are trying to access is archived","relatedUrl.archivalLink.flyoutMessage":"The content you are trying to access is archived View Archived Content"},"localOverride":false},"CachedAsset:component:custom.widget.Beta_MetaNav-en-1740169866627":{"__typename":"CachedAsset","id":"component:custom.widget.Beta_MetaNav-en-1740169866627","value":{"component":{"id":"custom.widget.Beta_MetaNav","template":{"id":"Beta_MetaNav","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"MetaNav menu at the top of every page.","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Beta_MetaNav","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"MetaNav menu at the top of every page.","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Community_Quicklinks-en-1740169866627":{"__typename":"CachedAsset","id":"component:custom.widget.Community_Quicklinks-en-1740169866627","value":{"component":{"id":"custom.widget.Community_Quicklinks","template":{"id":"Community_Quicklinks","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Community_Quicklinks","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Beta_Footer-en-1740169866627":{"__typename":"CachedAsset","id":"component:custom.widget.Beta_Footer-en-1740169866627","value":{"component":{"id":"custom.widget.Beta_Footer","template":{"id":"Beta_Footer","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"DevCentral´s custom footer.","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Beta_Footer","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"DevCentral´s custom footer.","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Tag_Manager_Helper-en-1740169866627":{"__typename":"CachedAsset","id":"component:custom.widget.Tag_Manager_Helper-en-1740169866627","value":{"component":{"id":"custom.widget.Tag_Manager_Helper","template":{"id":"Tag_Manager_Helper","markupLanguage":"HANDLEBARS","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"Helper widget to inject Tag Manager scripts into head element","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Tag_Manager_Helper","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"CUSTOM","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"Helper widget to inject Tag Manager scripts into head element","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:component:custom.widget.Consent_Blackbar-en-1740169866627":{"__typename":"CachedAsset","id":"component:custom.widget.Consent_Blackbar-en-1740169866627","value":{"component":{"id":"custom.widget.Consent_Blackbar","template":{"id":"Consent_Blackbar","markupLanguage":"HTML","style":null,"texts":null,"defaults":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"components":[{"id":"custom.widget.Consent_Blackbar","form":null,"config":null,"props":[],"__typename":"Component"}],"grouping":"TEXTHTML","__typename":"ComponentTemplate"},"properties":{"config":{"applicablePages":[],"description":"","fetchedContent":null,"__typename":"ComponentConfiguration"},"props":[],"__typename":"ComponentProperties"},"form":null,"__typename":"Component","localOverride":false},"globalCss":null,"form":null},"localOverride":false},"CachedAsset:text:en_US-components/community/Breadcrumb-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/community/Breadcrumb-1740415737689","value":{"navLabel":"Breadcrumbs","dropdown":"Additional parent page navigation"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBanner-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBanner-1740415737689","value":{"messageMarkedAsSpam":"This post has been marked as spam","messageMarkedAsSpam@board:TKB":"This article has been marked as spam","messageMarkedAsSpam@board:BLOG":"This post has been marked as spam","messageMarkedAsSpam@board:FORUM":"This discussion has been marked as spam","messageMarkedAsSpam@board:OCCASION":"This event has been marked as spam","messageMarkedAsSpam@board:IDEA":"This idea has been marked as spam","manageSpam":"Manage Spam","messageMarkedAsAbuse":"This post has been marked as abuse","messageMarkedAsAbuse@board:TKB":"This article has been marked as abuse","messageMarkedAsAbuse@board:BLOG":"This post has been marked as abuse","messageMarkedAsAbuse@board:FORUM":"This discussion has been marked as abuse","messageMarkedAsAbuse@board:OCCASION":"This event has been marked as abuse","messageMarkedAsAbuse@board:IDEA":"This idea has been marked as abuse","preModCommentAuthorText":"This comment will be published as soon as it is approved","preModCommentModeratorText":"This comment is awaiting moderation","messageMarkedAsOther":"This post has been rejected due to other reasons","messageMarkedAsOther@board:TKB":"This article has been rejected due to other reasons","messageMarkedAsOther@board:BLOG":"This post has been rejected due to other reasons","messageMarkedAsOther@board:FORUM":"This discussion has been rejected due to other reasons","messageMarkedAsOther@board:OCCASION":"This event has been rejected due to other reasons","messageMarkedAsOther@board:IDEA":"This idea has been rejected due to other reasons","messageArchived":"This post was archived on {date}","relatedUrl":"View Related Content","relatedContentText":"Showing related content","archivedContentLink":"View Archived Content"},"localOverride":false},"CachedAsset:text:en_US-components/featured/content/FeaturedContentWidget-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/featured/content/FeaturedContentWidget-1740415737689","value":{"edit":"Edit Featured Content","title":"Featured Content","title@instance:iLVTsW":"Pinned Items","title@instance:featuredWidgets.widget.featuredContentWidget-1702666903735":"","title@instance:TZsNhL":"","title@instance:featuredWidgets.widget.featuredContentWidget-1702666556326":"","title@instance:featuredWidgets.widget.featuredContentWidget-1717525242793":"","title@instance:featuredWidgets.widget.featuredContentWidget-1705956211049":"","title@instance:featuredWidgets.widget.featuredContentWidget-1717525727595":"Pinned Items","title@instance:featuredWidgets.widget.featuredContentWidget-1728320145294":"Pinned Items","title@instance:featuredWidgets.widget.featuredContentWidget-1703882552800":""},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageListForNodeByRecentActivityWidget-1740415737689","value":{"title@userScope:other":"Recent Content","title@userScope:self":"Contributions","title@board:FORUM@userScope:other":"Recent Discussions","title@board:BLOG@userScope:other":"Recent Blogs","emptyDescription":"No content to show","MessageListForNodeByRecentActivityWidgetEditor.nodeScope.label":"Scope","title@instance:1706288370055":"Content Feed","title@instance:1704319314827":"Blog Feed","title@instance:1704317906837":"Content Feed","title@instance:1702668293472":"Community Feed","title@instance:1704320290851":"My Contributions","title@instance:1703720491809":"Forum Feed","title@instance:1703028709746":"Group Content Feed","title@instance:VTsglH":"Content Feed"},"localOverride":false},"CachedAsset:text:en_US-components/messages/RelatedContentWidget-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/RelatedContentWidget-1740415737689","value":{"title":"Related Content","emptyDescription":"No content to show"},"localOverride":false},"Forum:board:WaterCooler":{"__typename":"Forum","id":"board:WaterCooler","forumPolicies":{"__typename":"ForumPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:Articles":{"__typename":"Category","id":"category:Articles","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"entityType":"CATEGORY","displayId":"Articles","nodeType":"category","depth":1,"title":"Articles","shortTitle":"Articles"},"Tkb:board:TechnicalArticles":{"__typename":"Tkb","id":"board:TechnicalArticles","tkbPolicies":{"__typename":"TkbPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"entityType":"TKB","displayId":"TechnicalArticles","nodeType":"board","depth":2,"conversationStyle":"TKB","title":"Technical Articles","shortTitle":"Technical Articles","parent":{"__ref":"Category:category:Articles"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/bi0zNC0xM2k0MzE3N0Q2NjFBRDg5NDAy\"}"},"description":"F5 SMEs share good practice.","eventPath":"category:Articles/community:zihoc95639board:TechnicalArticles/"},"Tkb:board:DevCentralNews":{"__typename":"Tkb","id":"board:DevCentralNews","tkbPolicies":{"__typename":"TkbPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:GroupsCategory":{"__typename":"Category","id":"category:GroupsCategory","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:F5-Groups":{"__typename":"Category","id":"category:F5-Groups","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:CommunityGroups":{"__typename":"Category","id":"category:CommunityGroups","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Occasion:board:Events":{"__typename":"Occasion","id":"board:Events","boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"occasionPolicies":{"__typename":"OccasionPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Idea:board:Suggestions":{"__typename":"Idea","id":"board:Suggestions","boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"ideaPolicies":{"__typename":"IdeaPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Category:category:CrowdSRC":{"__typename":"Category","id":"category:CrowdSRC","categoryPolicies":{"__typename":"CategoryPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"entityType":"CATEGORY","displayId":"CrowdSRC","nodeType":"category","depth":1,"title":"CrowdSRC","shortTitle":"CrowdSRC"},"Tkb:board:codeshare":{"__typename":"Tkb","id":"board:codeshare","tkbPolicies":{"__typename":"TkbPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"entityType":"TKB","displayId":"codeshare","nodeType":"board","depth":2,"conversationStyle":"TKB","title":"CodeShare","shortTitle":"CodeShare","parent":{"__ref":"Category:category:CrowdSRC"},"userContext":{"__typename":"NodeUserContext","canAddAttachments":false,"canUpdateNode":false,"canPostMessages":false,"isSubscribed":false},"avatar":{"__ref":"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/bi04Ny0xOTQ1NWk4ODNCOUNEMkFDNDZCQjI0\"}"},"description":"Have some code. Share some code.","eventPath":"category:CrowdSRC/community:zihoc95639board:codeshare/"},"Tkb:board:communityarticles":{"__typename":"Tkb","id":"board:communityarticles","tkbPolicies":{"__typename":"TkbPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Tkb:board:security-insights":{"__typename":"Tkb","id":"board:security-insights","tkbPolicies":{"__typename":"TkbPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Tkb:board:article-series":{"__typename":"Tkb","id":"board:article-series","tkbPolicies":{"__typename":"TkbPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}},"boardPolicies":{"__typename":"BoardPolicies","canReadNode":{"__typename":"PolicyResult","failureReason":null}}},"Conversation:conversation:340070":{"__typename":"Conversation","id":"conversation:340070","topic":{"__typename":"ForumTopicMessage","uid":340070},"lastPostingActivityTime":"2025-02-28T03:38:05.416-08:00","solved":false},"ForumTopicMessage:message:340070":{"__typename":"ForumTopicMessage","subject":"User Input Validation","conversation":{"__ref":"Conversation:conversation:340070"},"id":"message:340070","revisionNum":1,"uid":340070,"depth":0,"board":{"__ref":"Forum:board:TechnicalForum"},"author":{"__typename":"User","uid":27238,"login":"starboy","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false},"metrics":{"__typename":"MessageMetrics","views":20},"postTime":"2025-02-26T23:37:56.901-08:00","lastPublishTime":"2025-02-26T23:37:56.901-08:00","readOnly":false},"Conversation:conversation:340023":{"__typename":"Conversation","id":"conversation:340023","topic":{"__typename":"ForumTopicMessage","uid":340023},"lastPostingActivityTime":"2025-02-28T02:07:39.725-08:00","solved":true},"ForumTopicMessage:message:340023":{"__typename":"ForumTopicMessage","subject":"XC cloud - fleet","conversation":{"__ref":"Conversation:conversation:340023"},"id":"message:340023","revisionNum":1,"uid":340023,"depth":0,"board":{"__ref":"Forum:board:TechnicalForum"},"author":{"__typename":"User","uid":420921,"login":"Zdenek","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false},"metrics":{"__typename":"MessageMetrics","views":35},"postTime":"2025-02-25T09:59:01.291-08:00","lastPublishTime":"2025-02-25T09:59:01.291-08:00","readOnly":false},"Conversation:conversation:340085":{"__typename":"Conversation","id":"conversation:340085","topic":{"__typename":"ForumTopicMessage","uid":340085},"lastPostingActivityTime":"2025-02-28T01:54:55.194-08:00","solved":false},"ForumTopicMessage:message:340085":{"__typename":"ForumTopicMessage","subject":"F5 JOURNEYS FAIL TO LOAD UCS WITH GTM CONFIG","conversation":{"__ref":"Conversation:conversation:340085"},"id":"message:340085","revisionNum":1,"uid":340085,"depth":0,"board":{"__ref":"Forum:board:TechnicalForum"},"author":{"__typename":"User","uid":435150,"login":"Abi-O","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false},"metrics":{"__typename":"MessageMetrics","views":2},"postTime":"2025-02-28T01:54:55.194-08:00","lastPublishTime":"2025-02-28T01:54:55.194-08:00","readOnly":false},"Conversation:conversation:340055":{"__typename":"Conversation","id":"conversation:340055","topic":{"__typename":"ForumTopicMessage","uid":340055},"lastPostingActivityTime":"2025-02-28T00:57:04.313-08:00","solved":false},"ForumTopicMessage:message:340055":{"__typename":"ForumTopicMessage","subject":"ha cis multi cluster Openshift route creation","conversation":{"__ref":"Conversation:conversation:340055"},"id":"message:340055","revisionNum":1,"uid":340055,"depth":0,"board":{"__ref":"Forum:board:TechnicalForum"},"author":{"__typename":"User","uid":435079,"login":"PaulVogt","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false},"metrics":{"__typename":"MessageMetrics","views":14},"postTime":"2025-02-26T05:57:53.307-08:00","lastPublishTime":"2025-02-26T05:57:53.307-08:00","readOnly":false},"Conversation:conversation:340032":{"__typename":"Conversation","id":"conversation:340032","topic":{"__typename":"ForumTopicMessage","uid":340032},"lastPostingActivityTime":"2025-02-27T06:36:19.312-08:00","solved":false},"ForumTopicMessage:message:340032":{"__typename":"ForumTopicMessage","subject":"Any approach to encrypting HSL traffic such that no plain text is ever sniffable?","conversation":{"__ref":"Conversation:conversation:340032"},"id":"message:340032","revisionNum":1,"uid":340032,"depth":0,"board":{"__ref":"Forum:board:TechnicalForum"},"author":{"__typename":"User","uid":426239,"login":"daboochmeister2","registrationData":{"__typename":"RegistrationData","status":null},"deleted":false},"metrics":{"__typename":"MessageMetrics","views":47},"postTime":"2025-02-25T21:06:17.033-08:00","lastPublishTime":"2025-02-25T21:06:17.033-08:00","readOnly":false},"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstMzctMmdkZklv\"}":{"__typename":"AssociatedImage","url":"https://community.f5.com/t5/s/zihoc95639/images/cmstMzctMmdkZklv","height":0,"width":0,"mimeType":"image/svg+xml"},"Rank:rank:37":{"__typename":"Rank","id":"rank:37","position":14,"name":"Cirrostratus","color":"CCCCCC","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstMzctMmdkZklv\"}"},"rankStyle":"FILLED"},"User:user:422797":{"__typename":"User","id":"user:422797","uid":422797,"login":"Ireda","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2023-03-21T10:16:36.908-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-1.svg?time=0"},"rank":{"__ref":"Rank:rank:37"},"messagesCount":52,"kudosGivenCount":9,"kudosReceivedCount":5,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:zihoc95639/user:422797"},"ForumTopicMessage:message:321088":{"__typename":"ForumTopicMessage","uid":321088,"subject":"LTM Certificate expire","id":"message:321088","revisionNum":1,"repliesCount":4,"author":{"__ref":"User:user:422797"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:TechnicalForum"},"conversation":{"__ref":"Conversation:conversation:321088"},"moderationData":{"__ref":"ModerationData:moderation_data:321088"},"postTime":"2023-09-11T02:55:47.091-07:00","lastPublishTime":"2023-09-11T02:55:47.091-07:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":1015},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:321088"},"Conversation:conversation:321088":{"__typename":"Conversation","id":"conversation:321088","solved":true,"topic":{"__ref":"ForumTopicMessage:message:321088"},"lastPostingActivityTime":"2023-09-12T04:44:00.508-07:00","lastPostTime":"2023-09-12T04:44:00.508-07:00"},"ModerationData:moderation_data:321088":{"__typename":"ModerationData","id":"moderation_data:321088","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:321088":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:321088","relatedMessage":{"__ref":"ForumTopicMessage:message:321088"}},"User:user:431535":{"__typename":"User","id":"user:431535","uid":431535,"login":"Herman2024","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2024-09-01T18:56:13.459-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-5.svg?time=0"},"rank":{"__ref":"Rank:rank:37"},"messagesCount":59,"kudosGivenCount":18,"kudosReceivedCount":1,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:zihoc95639/user:431535"},"ForumTopicMessage:message:338911":{"__typename":"ForumTopicMessage","uid":338911,"subject":"why the device certificate verify failed when the device certificate is not expired?","id":"message:338911","revisionNum":1,"repliesCount":8,"author":{"__ref":"User:user:431535"},"depth":0,"hasGivenKudo":false,"board":{"__ref":"Forum:board:TechnicalForum"},"conversation":{"__ref":"Conversation:conversation:338911"},"moderationData":{"__ref":"ModerationData:moderation_data:338911"},"postTime":"2025-01-06T00:01:45.161-08:00","lastPublishTime":"2025-01-06T00:01:45.161-08:00","readOnly":false,"metrics":{"__typename":"MessageMetrics","views":161},"placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"entityType":"FORUM_TOPIC","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:338911"},"Conversation:conversation:338911":{"__typename":"Conversation","id":"conversation:338911","solved":true,"topic":{"__ref":"ForumTopicMessage:message:338911"},"lastPostingActivityTime":"2025-01-23T21:49:46.975-08:00","lastPostTime":"2025-01-23T21:49:46.975-08:00"},"ModerationData:moderation_data:338911":{"__typename":"ModerationData","id":"moderation_data:338911","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:338911":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:338911","relatedMessage":{"__ref":"ForumTopicMessage:message:338911"}},"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstNDUtYnlLd0Zw\"}":{"__typename":"AssociatedImage","url":"https://community.f5.com/t5/s/zihoc95639/images/cmstNDUtYnlLd0Zw","height":0,"width":0,"mimeType":"image/svg+xml"},"Rank:rank:45":{"__typename":"Rank","id":"rank:45","position":22,"name":"Fog","color":"CCCCCC","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstNDUtYnlLd0Zw\"}"},"rankStyle":"FILLED"},"User:user:230454":{"__typename":"User","id":"user:230454","uid":230454,"login":"ShaunNeutron","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2020-09-12T14:05:51.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-9.svg?time=0"},"rank":{"__ref":"Rank:rank:45"},"messagesCount":1,"kudosGivenCount":0,"kudosReceivedCount":0,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":0,"entityType":"USER","eventPath":"community:zihoc95639/user:230454"},"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/bi04Ny0xOTQ1NWk4ODNCOUNEMkFDNDZCQjI0\"}":{"__typename":"AssociatedImage","url":"https://community.f5.com/t5/s/zihoc95639/images/bi04Ny0xOTQ1NWk4ODNCOUNEMkFDNDZCQjI0","mimeType":"image/png"},"TkbTopicMessage:message:287719":{"__typename":"TkbTopicMessage","uid":287719,"subject":"CheckMk F5 Certificate Expiration using SNMP","id":"message:287719","revisionNum":1,"repliesCount":0,"author":{"__ref":"User:user:230454"},"depth":0,"hasGivenKudo":false,"helpful":null,"board":{"__ref":"Tkb:board:codeshare"},"conversation":{"__ref":"Conversation:conversation:287719"},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"shortScheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":false}},"moderationData":{"__ref":"ModerationData:moderation_data:287719"},"teaser@stripHtml({\"removeProcessingText\":false,\"truncateLength\":200})":"","postTime":"2020-09-12T14:11:30.000-07:00","lastPublishTime":"2020-09-12T14:11:30.000-07:00","readOnly":false,"introduction":"","metrics":{"__typename":"MessageMetrics","views":516},"placeholder":false,"originalMessageForPlaceholder":null,"entityType":"TKB_ARTICLE","eventPath":"category:CrowdSRC/community:zihoc95639board:codeshare/message:287719"},"Conversation:conversation:287719":{"__typename":"Conversation","id":"conversation:287719","solved":false,"topic":{"__ref":"TkbTopicMessage:message:287719"},"lastPostingActivityTime":"2020-09-12T14:11:30.000-07:00","lastPostTime":"2020-09-12T14:11:30.000-07:00"},"ModerationData:moderation_data:287719":{"__typename":"ModerationData","id":"moderation_data:287719","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:287719":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:287719","relatedMessage":{"__ref":"TkbTopicMessage:message:287719"}},"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstMjgtQ3U0RXo2\"}":{"__typename":"AssociatedImage","url":"https://community.f5.com/t5/s/zihoc95639/images/cmstMjgtQ3U0RXo2","height":0,"width":0,"mimeType":"image/svg+xml"},"Rank:rank:28":{"__typename":"Rank","id":"rank:28","position":5,"name":"Employee","color":"C20025","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstMjgtQ3U0RXo2\"}"},"rankStyle":"OUTLINE"},"User:user:130391":{"__typename":"User","id":"user:130391","uid":130391,"login":"Kevin_Stewart","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2006-03-16T00:00:00.000-08:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/images/dS0xMzAzOTEtelZmemp2?image-coordinates=0%2C0%2C500%2C500"},"rank":{"__ref":"Rank:rank:28"},"messagesCount":5756,"kudosGivenCount":0,"kudosReceivedCount":162,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":29,"entityType":"USER","eventPath":"community:zihoc95639/user:130391"},"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/bi0zNC0xM2k0MzE3N0Q2NjFBRDg5NDAy\"}":{"__typename":"AssociatedImage","url":"https://community.f5.com/t5/s/zihoc95639/images/bi0zNC0xM2k0MzE3N0Q2NjFBRDg5NDAy","mimeType":"image/png"},"TkbTopicMessage:message:328935":{"__typename":"TkbTopicMessage","uid":328935,"subject":"Automating ACMEv2 Certificate Management on BIG-IP","id":"message:328935","revisionNum":6,"repliesCount":13,"author":{"__ref":"User:user:130391"},"depth":0,"hasGivenKudo":false,"helpful":null,"board":{"__ref":"Tkb:board:TechnicalArticles"},"conversation":{"__ref":"Conversation:conversation:328935"},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"shortScheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":false}},"moderationData":{"__ref":"ModerationData:moderation_data:328935"},"teaser@stripHtml({\"removeProcessingText\":false,\"truncateLength\":200})":" While we often associate and confuse Let's Encrypt with ACMEv2, the former is ultimately a consumer of the latter. The \"Automated Certificate Management Environment\" (ACME) protocol describes a syste...","postTime":"2024-04-17T05:00:00.037-07:00","lastPublishTime":"2024-04-17T05:00:00.037-07:00","readOnly":false,"introduction":"While we often associate and confuse Let's Encrypt with ACMEv2, the former is ultimately a consumer of the latter. The \"Automated Certificate Management Environment\" (ACME) protocol describes a system for automating the renewal of PKI certificates. The ACME protocol can be used with public services like Let's Encrypt, but also with internal certificate management services. In this article we explore the more generic support of ACME (version 2) on the F5 BIG-IP.","metrics":{"__typename":"MessageMetrics","views":4908},"placeholder":false,"originalMessageForPlaceholder":null,"entityType":"TKB_ARTICLE","eventPath":"category:Articles/community:zihoc95639board:TechnicalArticles/message:328935"},"Conversation:conversation:328935":{"__typename":"Conversation","id":"conversation:328935","solved":false,"topic":{"__ref":"TkbTopicMessage:message:328935"},"lastPostingActivityTime":"2025-02-17T09:49:47.019-08:00","lastPostTime":"2025-02-17T09:49:47.019-08:00"},"ModerationData:moderation_data:328935":{"__typename":"ModerationData","id":"moderation_data:328935","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:328935":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:328935","relatedMessage":{"__ref":"TkbTopicMessage:message:328935"}},"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstMzQtMGtQRU1Y\"}":{"__typename":"AssociatedImage","url":"https://community.f5.com/t5/s/zihoc95639/images/cmstMzQtMGtQRU1Y","height":0,"width":0,"mimeType":"image/svg+xml"},"Rank:rank:34":{"__typename":"Rank","id":"rank:34","position":11,"name":"Nacreous","color":"CCCCCC","icon":{"__ref":"AssociatedImage:{\"url\":\"https://community.f5.com/t5/s/zihoc95639/images/cmstMzQtMGtQRU1Y\"}"},"rankStyle":"FILLED"},"User:user:175623":{"__typename":"User","id":"user:175623","uid":175623,"login":"Lee_Sutcliffe","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2009-09-14T01:00:00.000-07:00","confirmEmailStatus":null,"registrationAccessLevel":null,"ssoRegistrationFields":[]},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-11.svg?time=0"},"rank":{"__ref":"Rank:rank:34"},"messagesCount":621,"kudosGivenCount":12,"kudosReceivedCount":55,"kudosWeight":1,"ssoId":null,"followersCount":null,"solutionsCount":14,"entityType":"USER","eventPath":"community:zihoc95639/user:175623"},"TkbTopicMessage:message:289125":{"__typename":"TkbTopicMessage","uid":289125,"subject":"Quick and dirty shell script to find unused certificates","id":"message:289125","revisionNum":1,"repliesCount":7,"author":{"__ref":"User:user:175623"},"depth":0,"hasGivenKudo":false,"helpful":null,"board":{"__ref":"Tkb:board:codeshare"},"conversation":{"__ref":"Conversation:conversation:289125"},"contentWorkflow":{"__typename":"ContentWorkflow","state":"PUBLISH","scheduledPublishTime":null,"scheduledTimezone":null,"shortScheduledTimezone":null,"userContext":{"__typename":"MessageWorkflowContext","canSubmitForReview":null,"canEdit":false,"canRecall":null,"canSubmitForPublication":null,"canReturnToAuthor":null,"canPublish":null,"canReturnToReview":null,"canSchedule":false}},"moderationData":{"__ref":"ModerationData:moderation_data:289125"},"teaser@stripHtml({\"removeProcessingText\":false,\"truncateLength\":200})":"","postTime":"2019-05-16T00:24:13.000-07:00","lastPublishTime":"2019-05-16T00:24:13.000-07:00","readOnly":false,"introduction":"","metrics":{"__typename":"MessageMetrics","views":1867},"placeholder":false,"originalMessageForPlaceholder":null,"entityType":"TKB_ARTICLE","eventPath":"category:CrowdSRC/community:zihoc95639board:codeshare/message:289125"},"Conversation:conversation:289125":{"__typename":"Conversation","id":"conversation:289125","solved":false,"topic":{"__ref":"TkbTopicMessage:message:289125"},"lastPostingActivityTime":"2020-12-22T01:57:52.000-08:00","lastPostTime":"2020-12-22T01:57:52.000-08:00"},"ModerationData:moderation_data:289125":{"__typename":"ModerationData","id":"moderation_data:289125","status":"APPROVED","rejectReason":null},"RelatedContentMessage:RelatedContentMessage:289125":{"__typename":"RelatedContentMessage","id":"RelatedContentMessage:289125","relatedMessage":{"__ref":"TkbTopicMessage:message:289125"}},"QueryVariables:TopicReplyList:message:107068:1":{"__typename":"QueryVariables","id":"TopicReplyList:message:107068:1","value":{"id":"message:107068","first":10,"sorts":{"postTime":{"direction":"ASC"}},"repliesFirst":3,"repliesFirstDepthThree":1,"repliesSorts":{"postTime":{"direction":"ASC"}},"useAvatar":true,"useAuthorLogin":true,"useAuthorRank":true,"useBody":true,"useKudosCount":true,"useTimeToRead":false,"useMedia":false,"useReadOnlyIcon":false,"useRepliesCount":true,"useSearchSnippet":false,"useAcceptedSolutionButton":true,"useSolvedBadge":false,"useAttachments":false,"attachmentsFirst":5,"useTags":true,"useNodeAncestors":false,"useUserHoverCard":false,"useNodeHoverCard":false,"useModerationStatus":true,"usePreviewSubjectModal":false,"useMessageStatus":true}},"ROOT_MUTATION":{"__typename":"Mutation"},"CachedAsset:text:en_US-components/community/Navbar-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/community/Navbar-1740415737689","value":{"community":"Community Home","inbox":"Inbox","manageContent":"Manage Content","tos":"Terms of Service","forgotPassword":"Forgot Password","themeEditor":"Theme Editor","edit":"Edit Navigation Bar","skipContent":"Skip to content","migrated-link-9":"Groups","migrated-link-7":"Technical Articles","migrated-link-8":"DevCentral News","migrated-link-1":"Technical Forum","migrated-link-10":"Community Groups","migrated-link-2":"Water Cooler","migrated-link-11":"F5 Groups","Common-external-link":"How Do I...?","migrated-link-0":"Forums","article-series":"Article Series","migrated-link-5":"Community Articles","migrated-link-6":"Articles","security-insights":"Security Insights","migrated-link-3":"CrowdSRC","migrated-link-4":"CodeShare","migrated-link-12":"Events","migrated-link-13":"Suggestions"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarHamburgerDropdown-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarHamburgerDropdown-1740415737689","value":{"hamburgerLabel":"Side Menu"},"localOverride":false},"CachedAsset:text:en_US-components/community/BrandLogo-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/community/BrandLogo-1740415737689","value":{"logoAlt":"Khoros","themeLogoAlt":"Brand Logo"},"localOverride":false},"CachedAsset:text:en_US-components/community/NavbarTextLinks-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarTextLinks-1740415737689","value":{"more":"More"},"localOverride":false},"CachedAsset:text:en_US-components/authentication/AuthenticationLink-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/authentication/AuthenticationLink-1740415737689","value":{"title.login":"Sign In","title.registration":"Register","title.forgotPassword":"Forgot Password","title.multiAuthLogin":"Sign In"},"localOverride":false},"CachedAsset:text:en_US-components/nodes/NodeLink-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/nodes/NodeLink-1740415737689","value":{"place":"Place {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewStandard-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewStandard-1740415737689","value":{"anonymous":"Anonymous","author":"{messageAuthorLogin}","authorBy":"{messageAuthorLogin}","board":"{messageBoardTitle}","replyToUser":" to {parentAuthor}","showMoreReplies":"Show More","replyText":"Reply","repliesText":"Replies","markedAsSolved":"Marked as Solved","movedMessagePlaceholder.BLOG":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.TKB":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.FORUM":"{count, plural, =0 {This reply has been} other {These replies have been} }","movedMessagePlaceholder.IDEA":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholder.OCCASION":"{count, plural, =0 {This comment has been} other {These comments have been} }","movedMessagePlaceholderUrlText":"moved.","messageStatus":"Status: ","statusChanged":"Status changed: {previousStatus} to {currentStatus}","statusAdded":"Status added: {status}","statusRemoved":"Status removed: {status}","labelExpand":"expand replies","labelCollapse":"collapse replies","unhelpfulReason.reason1":"Content is outdated","unhelpfulReason.reason2":"Article is missing information","unhelpfulReason.reason3":"Content is for a different Product","unhelpfulReason.reason4":"Doesn't match what I was searching for"},"localOverride":false},"CachedAsset:text:en_US-components/messages/ThreadedReplyList-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/ThreadedReplyList-1740415737689","value":{"title":"{count, plural, one{# Reply} other{# Replies}}","title@board:BLOG":"{count, plural, one{# Comment} other{# Comments}}","title@board:TKB":"{count, plural, one{# Comment} other{# Comments}}","title@board:IDEA":"{count, plural, one{# Comment} other{# Comments}}","title@board:OCCASION":"{count, plural, one{# Comment} other{# Comments}}","noRepliesTitle":"No Replies","noRepliesTitle@board:BLOG":"No Comments","noRepliesTitle@board:TKB":"No Comments","noRepliesTitle@board:IDEA":"No Comments","noRepliesTitle@board:OCCASION":"No Comments","noRepliesDescription":"Be the first to reply","noRepliesDescription@board:BLOG":"Be the first to comment","noRepliesDescription@board:TKB":"Be the first to comment","noRepliesDescription@board:IDEA":"Be the first to comment","noRepliesDescription@board:OCCASION":"Be the first to comment","messageReadOnlyAlert:BLOG":"Comments have been turned off for this post","messageReadOnlyAlert:TKB":"Comments have been turned off for this article","messageReadOnlyAlert:IDEA":"Comments have been turned off for this idea","messageReadOnlyAlert:FORUM":"Replies have been turned off for this discussion","messageReadOnlyAlert:OCCASION":"Comments have been turned off for this event"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyCallToAction-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyCallToAction-1740415737689","value":{"leaveReply":"Leave a reply...","leaveReply@board:BLOG@message:root":"Leave a comment...","leaveReply@board:TKB@message:root":"Leave a comment...","leaveReply@board:IDEA@message:root":"Leave a comment...","leaveReply@board:OCCASION@message:root":"Leave a comment...","repliesTurnedOff.FORUM":"Replies are turned off for this topic","repliesTurnedOff.BLOG":"Comments are turned off for this topic","repliesTurnedOff.TKB":"Comments are turned off for this topic","repliesTurnedOff.IDEA":"Comments are turned off for this topic","repliesTurnedOff.OCCASION":"Comments are turned off for this topic","infoText":"Stop poking me!"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/QueryHandler-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/QueryHandler-1740415737689","value":{"title":"Query Handler"},"localOverride":false},"User:user:29768":{"__typename":"User","id":"user:29768","uid":29768,"login":"hoolio","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2005-09-08T01:00:00.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-7.svg?time=0"},"rank":{"__ref":"Rank:rank:37"},"entityType":"USER","eventPath":"community:zihoc95639/user:29768"},"ModerationData:moderation_data:107069":{"__typename":"ModerationData","id":"moderation_data:107069","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107069":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:29768"},"id":"message:107069","revisionNum":1,"uid":107069,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107069"},"body":"

Hi David,

 

\n

Nice work. But could you use checkcert to send an snmptrap or email?

 

\n

SOL14318: Monitoring SSL certificate expiration on the BIG-IP system (11.x)

 

\n

SOL3727: Configuring custom SNMP traps

 

\n

Aaron

 

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"218","kudosSumWeight":0,"repliesCount":0,"postTime":"2013-08-12T15:30:25.000-07:00","lastPublishTime":"2013-08-12T15:30:25.000-07:00","metrics":{"__typename":"MessageMetrics","views":2806},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107069","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"Rank:rank:47":{"__typename":"Rank","id":"rank:47","position":3,"name":"Historic F5 Account","color":"949494","icon":null,"rankStyle":"OUTLINE"},"User:user:88018":{"__typename":"User","id":"user:88018","uid":88018,"login":"R_Eastman_13667","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-05-04T15:23:11.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-12.svg?time=0"},"rank":{"__ref":"Rank:rank:47"},"entityType":"USER","eventPath":"community:zihoc95639/user:88018"},"ModerationData:moderation_data:107070":{"__typename":"ModerationData","id":"moderation_data:107070","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107070":{"__typename":"ForumReplyMessage","uid":107070,"id":"message:107070","revisionNum":1,"author":{"__ref":"User:user:88018"},"readOnly":false,"repliesCount":3,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107070"},"body":"

I was able to use this script in an iApp that I am able to run on a schedule, basically a cron job via the gui.

 

\n

There is a typo in it. Wherever you see 'will expired' it should be 'will expire'.

 

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"postTime":"2013-12-03T08:41:46.000-08:00","lastPublishTime":"2013-12-03T08:41:46.000-08:00","metrics":{"__typename":"MessageMetrics","views":2793},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107070","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwzfDM5OjF8aW50LDEwNzA3MSwxMDcwNzE","node":{"__ref":"ForumReplyMessage:message:107071"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwzfDM5OjF8aW50LDEwNzA3MSwxMDcwNzI","node":{"__ref":"ForumReplyMessage:message:107072"}},{"__typename":"MessageEdge","cursor":"MjUuMXwyLjF8aXwzfDM5OjF8aW50LDEwNzA3MSwxMDcwNzM","node":{"__ref":"ForumReplyMessage:message:107073"}}]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:107071":{"__typename":"ModerationData","id":"moderation_data:107071","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107071":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:33210"},"id":"message:107071","revisionNum":1,"uid":107071,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumReplyMessage:message:107070"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107071"},"body":"Hi R Eastman\n\nThe typo is from the certcheck script that I run to get info about all the certificates. If that typo is fixed in a later release (we run 11.3.0), the script stops working :)\n\nI assume this is what happened for you? What version do you run?","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2014-01-21T17:54:20.000-08:00","lastPublishTime":"2014-01-21T17:54:20.000-08:00","metrics":{"__typename":"MessageMetrics","views":2786},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107071","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:107072":{"__typename":"ModerationData","id":"moderation_data:107072","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107072":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:88018"},"id":"message:107072","revisionNum":1,"uid":107072,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumReplyMessage:message:107070"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107072"},"body":"11.3.0.","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"7","kudosSumWeight":0,"repliesCount":0,"postTime":"2014-01-22T03:09:15.000-08:00","lastPublishTime":"2014-01-22T03:09:15.000-08:00","metrics":{"__typename":"MessageMetrics","views":2783},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107072","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:107073":{"__typename":"ModerationData","id":"moderation_data:107073","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107073":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:33210"},"id":"message:107073","revisionNum":1,"uid":107073,"depth":2,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumReplyMessage:message:107070"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107073"},"body":"Hmm. Same here. Just upgraded to HF8 a couple of hours ago and the typo is still in the \"tmsh run sys crypto check-cert\". Could be a remnant from an old version. I've seen some funny stuff hiding after upgrade. Our box was origanally in the 9.x branch when first bought, Then 10.x, and finally 11.x before going into production. So we found some scripts that still used Korn shell and similar stuff.\n\nBut well.. No biggie, just fix the typo so it matches your output :)","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2014-01-23T15:31:35.000-08:00","lastPublishTime":"2014-01-23T15:31:35.000-08:00","metrics":{"__typename":"MessageMetrics","views":2780},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107073","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:63429":{"__typename":"User","id":"user:63429","uid":63429,"login":"miguel_fon_1419","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-05-04T15:49:28.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-2.svg?time=0"},"rank":{"__ref":"Rank:rank:41"},"entityType":"USER","eventPath":"community:zihoc95639/user:63429"},"ModerationData:moderation_data:107074":{"__typename":"ModerationData","id":"moderation_data:107074","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107074":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:63429"},"id":"message:107074","revisionNum":1,"uid":107074,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107074"},"body":"

Thanks a lot for the script.

 

\n

Very useful!

 

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"61","kudosSumWeight":0,"repliesCount":0,"postTime":"2014-05-14T04:07:57.000-07:00","lastPublishTime":"2014-05-14T04:07:57.000-07:00","metrics":{"__typename":"MessageMetrics","views":2771},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107074","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:88068":{"__typename":"User","id":"user:88068","uid":88068,"login":"Paul_73646","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2012-10-05T01:00:00.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-4.svg?time=0"},"rank":{"__ref":"Rank:rank:41"},"entityType":"USER","eventPath":"community:zihoc95639/user:88068"},"ModerationData:moderation_data:107075":{"__typename":"ModerationData","id":"moderation_data:107075","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107075":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:88068"},"id":"message:107075","revisionNum":1,"uid":107075,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107075"},"body":"I am getting an error when it tries to mail the data out. here is the error: \"send-mail: Cannot open mail:25\" I can't seem to figure out why this is happening, does anyone have any ideas on this? Any help would be great!","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"203","kudosSumWeight":0,"repliesCount":0,"postTime":"2014-05-29T11:57:33.000-07:00","lastPublishTime":"2014-05-29T11:57:33.000-07:00","metrics":{"__typename":"MessageMetrics","views":2771},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107075","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:216001":{"__typename":"User","id":"user:216001","uid":216001,"login":"Héctor_J__Sánc1","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-05-22T08:11:33.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-7.svg?time=0"},"rank":{"__ref":"Rank:rank:41"},"entityType":"USER","eventPath":"community:zihoc95639/user:216001"},"ModerationData:moderation_data:107076":{"__typename":"ModerationData","id":"moderation_data:107076","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107076":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:216001"},"id":"message:107076","revisionNum":2,"uid":107076,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107076"},"body":"

Hi,

\n

a little update to check all partitions, not just Common:

\n

 

\n
!/bin/bash\nAuthor: dadalife\n\n\nCheck if unit is active and if it is the script should continue:\nACTIVE=$(tmsh show cm failover-status | grep ACTIVE | wc -l)\nif (($ACTIVE == 1)); then\necho -e \"Unit is active. Proceeding...\\n\"\n\n\nSCRIPTPATH='/root/'\nMAIL=''\nMAILCC=''\nNUMREPORTED=0\nNUMFLAGGED=0\nNUMCRITICAL=0\n\nrm -r \"$SCRIPTPATH\"expiringcerts.txt\n\nCreate a list of all expiring certificates:\nfor PARTITION in $(tmsh -c \"cd / ; list sys folder recursive one-line\" | awk '{print $3}')\n do \n    tmsh -c \"cd /$PARTITION ; run sys crypto check-cert\" | grep 'will expired' | awk -F 'in file' '{print $2}' | awk -F ' GMT' '{print $1}' >> \"$SCRIPTPATH\"expiringcerts.txt\n done\necho \"A list of all expiring certificates has been created!\"\n\n\n\nSend an email for each certificate if it has not already been sent:\necho -e \"\\nChecking for expiring certificates...\"\n> \"$SCRIPTPATH\"tempflagged.txt\nwhile read line; do\n       BODY=\"\\n\\nIf it was not previously done, please create a Jira for Operations team in order to renew the certificate.\\n\\nIgnore this\nalarm if the certificate is /Common/ca-bundle.crt\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"\n        CERT=$(echo $line | awk -F ' ' '{print $1}')\n        CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')\n        FLAGGED=$(cat \"$SCRIPTPATH\"flaggedcerts.txt | grep $CERT | wc -l)\n        if (( $FLAGGED == 0)); then\n                echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt\n                echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"$CERT expires on $CERTEXPIRE GMT\" $MAIL -c $MAILCC\n                echo \"--> $CERT reported to servicedesk.\"\n                NUMREPORTED=$[$NUMREPORTED +1]\n        else\n                echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt\n                echo \"--> $CERT has already been flagged\"\n                NUMFLAGGED=$[$NUMFLAGGED +1]\n        fi\ndone < \"$SCRIPTPATH\"expiringcerts.txt\ncp \"$SCRIPTPATH\"tempflagged.txt \"$SCRIPTPATH\"flaggedcerts.txt\necho -e \"Check for expiring certificates done!\"\n\n\nCheck if a certificate is less than a week from expiring:\nCURRENTTIMEEPOCH=$(date +%s)\necho -e \"\\nChecking for almost expired certificates...\"\nwhile read line; do\n        CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')\n        CERTEXPIREEPOCH=$(date --date=\"$CERTEXPIRE\" +%s)\n        CERTEXPIREDIFF=$(expr $CERTEXPIREEPOCH - $CURRENTTIMEEPOCH)\n        if (($CERTEXPIREDIFF < 604800)); then\n                BODY=\"\\n\\nIf it was not previously done, please create a Jira for Operations team in order to renew the certificate.\\n\\nIgnore this \nalarm if the certificate is /Common/ca-bundle.crt\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"\n                CERT=$(echo $line | awk -F ' ' '{print $1}')\n                echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\" $MAIL -c $MAILCC\n                echo \"--> WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\"\n                NUMCRITICAL=$[$NUMCRITICAL +1]\n        fi\ndone < \"$SCRIPTPATH\"expiringcerts.txt\necho \"Check for almost expired certificates done!\"\n\n\necho -e \"\\nCertification check done!\"\n\n\nSend a status email:\necho -e \"Hi Miguel\\n\\nYour script did its job!!\\n\\nNumber of newly reported certificates: '$NUMREPORTED'\\nNumber of already flagged certificates: \n'$NUMFLAGGED'\\nNumber of critical certificates: '$NUMCRITICAL'\\n\\nYours Sincerely\\nThe BIG-IP\" | mail -s \"Everthing went well!\" $MAILCC\n\n\nelse\necho \"Unit is standby. No action taken!\"\nfi\n
\n

 

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"repliesCount":0,"postTime":"2015-09-16T03:19:04.000-07:00","lastPublishTime":"2022-11-28T16:11:31.877-08:00","metrics":{"__typename":"MessageMetrics","views":2725},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107076","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:107077":{"__typename":"ModerationData","id":"moderation_data:107077","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107077":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:216001"},"id":"message:107077","revisionNum":2,"uid":107077,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107077"},"body":"

Another update/fix:

\n

 

\n
!/bin/bash\nAuthor: dadalife\n\nCheck if unit is active and if it is the script should continue:\nACTIVE=$(tmsh show cm failover-status | grep ACTIVE | wc -l)\nif (($ACTIVE == 1)); then\necho -e \"Unit is active. Proceeding...\\n\"\n\nSCRIPTPATH='/root/'\nMAIL=''\nMAILCC=''\nNUMREPORTED=0\nNUMFLAGGED=0\nNUMCRITICAL=0\nIGNORE=('bundle')\n\nrm -r \"$SCRIPTPATH\"expiringcerts.txt\n\nCreate a list of all expiring certificates:\n\ntmsh -c \"cd /; run sys crypto check-cert\" | grep 'will expire' | awk -F 'in file' '{print $2}' | awk -F ' GMT' '{print $1}' >> \"$SCRIPTPATH\"expiringcerts.txt\necho \"A list of all expiring certificates has been created!\"\n\nSend an email for each certificate if it has not already been sent:\necho -e \"\\nChecking for expiring certificates...\"\n> \"$SCRIPTPATH\"tempflagged.txt\nwhile read line; do\n\n    CERT=$(echo $line | awk -F ' ' '{print $1}')\n\n    for i in \"${IGNORE[@]}\"\n    do\n        if [[ \"$CERT\" == *\"$i\"* ]]\n        then\n            echo \"Ignoring $CERT\"\n            continue 2\n        fi\n    done\n\n    BODY=\"\\n\\nIf it was not previously done, please create a Jira for Operations team in order to renew the certificate.\\n\\nIgnore this\nalarm if the certificate is /Common/ca-bundle.crt\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"\n        CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')\n        FLAGGED=$(cat \"$SCRIPTPATH\"flaggedcerts.txt | grep $CERT | wc -l)\n        if (( $FLAGGED == 0)); then\n                echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt\n                echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"$CERT expires on $CERTEXPIRE GMT\" $MAIL -c $MAILCC\n                echo \"--> $CERT reported to servicedesk.\"\n                NUMREPORTED=$[$NUMREPORTED +1]\n        else\n                echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt\n                echo \"--> $CERT has already been flagged\"\n                NUMFLAGGED=$[$NUMFLAGGED +1]\n        fi\ndone < \"$SCRIPTPATH\"expiringcerts.txt\ncp \"$SCRIPTPATH\"tempflagged.txt \"$SCRIPTPATH\"flaggedcerts.txt\necho -e \"Check for expiring certificates done!\"\n\nCheck if a certificate is less than a week from expiring:\nCURRENTTIMEEPOCH=$(date +%s)\necho -e \"\\nChecking for almost expired certificates...\"\nwhile read line; do\n\n        CERT=$(echo $line | awk -F ' ' '{print $1}')\n\n    for i in \"${IGNORE[@]}\"\n    do\n        if [[ \"$CERT\" == *\"$i\"* ]]\n        then\n            echo \"Ignoring $CERT\"\n            continue 2\n        fi\n    done        \n\n        CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')\n        CERTEXPIREEPOCH=$(date --date=\"$CERTEXPIRE\" +%s)\n        CERTEXPIREDIFF=$(expr $CERTEXPIREEPOCH - $CURRENTTIMEEPOCH)\n        if (($CERTEXPIREDIFF < 604800)); then\n                BODY=\"\\n\\nIf it was not previously done, please create a Jira for Operations team in order to renew the certificate.\\n\\nIgnore this \nalarm if the certificate is /Common/ca-bundle.crt\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"\n                echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\" $MAIL -c $MAILCC\n                echo \"--> WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\"\n                NUMCRITICAL=$[$NUMCRITICAL +1]\n        fi\ndone < \"$SCRIPTPATH\"expiringcerts.txt\necho \"Check for almost expired certificates done!\"\n\necho -e \"\\nCertification check done!\"\n\nSend a status email:\necho -e \"Hi Héctor\\n\\nYour script did its job!!\\n\\nNumber of newly reported certificates: '$NUMREPORTED'\\nNumber of already flagged certificates: \n'$NUMFLAGGED'\\nNumber of critical certificates: '$NUMCRITICAL'\\n\\nYours Sincerely\\nThe BIG-IP\" | mail -s \"Everthing went well!\" $MAILCC\n\nelse\necho \"Unit is standby. No action taken!\"\nfi\n
\n

 

\n

Had to change grep 'will expired' to grep 'will expire', and now you can ignore certs to reduce the noise. Also removed the partition loop, you can check all certs from root dir.

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"repliesCount":0,"postTime":"2016-03-07T02:06:38.000-08:00","lastPublishTime":"2022-11-28T16:10:56.198-08:00","metrics":{"__typename":"MessageMetrics","views":2725},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107077","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:107078":{"__typename":"ModerationData","id":"moderation_data:107078","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107078":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:216001"},"id":"message:107078","revisionNum":2,"uid":107078,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107078"},"body":"

Another update/fix:

\n

 

\n
!/bin/bash\nAuthor: dadalife\n\nCheck if unit is active and if it is the script should continue:\nACTIVE=$(tmsh show cm failover-status | grep ACTIVE | wc -l)\nif (($ACTIVE == 1)); then\necho -e \"Unit is active. Proceeding...\\n\"\n\nSCRIPTPATH='/root/'\nMAIL=''\nMAILCC=''\nNUMREPORTED=0\nNUMFLAGGED=0\nNUMCRITICAL=0\nIGNORE=('bundle')\n\nrm -r \"$SCRIPTPATH\"expiringcerts.txt\n\nCreate a list of all expiring certificates:\n\ntmsh -c \"cd /; run sys crypto check-cert\" | grep 'will expire' | awk -F 'in file' '{print $2}' | awk -F ' GMT' '{print $1}' >> \"$SCRIPTPATH\"expiringcerts.txt\necho \"A list of all expiring certificates has been created!\"\n\nSend an email for each certificate if it has not already been sent:\necho -e \"\\nChecking for expiring certificates...\"\n> \"$SCRIPTPATH\"tempflagged.txt\nwhile read line; do\n\n    CERT=$(echo $line | awk -F ' ' '{print $1}')\n\n    for i in \"${IGNORE[@]}\"\n    do\n        if [[ \"$CERT\" == *\"$i\"* ]]\n        then\n            echo \"Ignoring $CERT\"\n            continue 2\n        fi\n    done\n\n    BODY=\"\\n\\nIf it was not previously done, please create a Jira for Operations team in order to renew the certificate.\\n\\nIgnore this\nalarm if the certificate is /Common/ca-bundle.crt\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"\n        CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')\n        FLAGGED=$(cat \"$SCRIPTPATH\"flaggedcerts.txt | grep $CERT | wc -l)\n        if (( $FLAGGED == 0)); then\n                echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt\n                echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"$CERT expires on $CERTEXPIRE GMT\" $MAIL -c $MAILCC\n                echo \"--> $CERT reported to servicedesk.\"\n                NUMREPORTED=$[$NUMREPORTED +1]\n        else\n                echo $CERT >> \"$SCRIPTPATH\"tempflagged.txt\n                echo \"--> $CERT has already been flagged\"\n                NUMFLAGGED=$[$NUMFLAGGED +1]\n        fi\ndone < \"$SCRIPTPATH\"expiringcerts.txt\ncp \"$SCRIPTPATH\"tempflagged.txt \"$SCRIPTPATH\"flaggedcerts.txt\necho -e \"Check for expiring certificates done!\"\n\nCheck if a certificate is less than a week from expiring:\nCURRENTTIMEEPOCH=$(date +%s)\necho -e \"\\nChecking for almost expired certificates...\"\nwhile read line; do\n\n        CERT=$(echo $line | awk -F ' ' '{print $1}')\n\n    for i in \"${IGNORE[@]}\"\n    do\n        if [[ \"$CERT\" == *\"$i\"* ]]\n        then\n            echo \"Ignoring $CERT\"\n            continue 2\n        fi\n    done        \n\n        CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}')\n        CERTEXPIREEPOCH=$(date --date=\"$CERTEXPIRE\" +%s)\n        CERTEXPIREDIFF=$(expr $CERTEXPIREEPOCH - $CURRENTTIMEEPOCH)\n        if (($CERTEXPIREDIFF < 604800)); then\n                BODY=\"\\n\\nIf it was not previously done, please create a Jira for Operations team in order to renew the certificate.\\n\\nIgnore this \nalarm if the certificate is /Common/ca-bundle.crt\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"\n                echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\" $MAIL -c $MAILCC\n                echo \"--> WARNING: $CERT EXPIRES IN LESS THAN A WEEK!!\"\n                NUMCRITICAL=$[$NUMCRITICAL +1]\n        fi\ndone < \"$SCRIPTPATH\"expiringcerts.txt\necho \"Check for almost expired certificates done!\"\n\necho -e \"\\nCertification check done!\"\n\nSend a status email:\necho -e \"Hi H&233;ctor\\n\\nYour script did its job!!\\n\\nNumber of newly reported certificates: '$NUMREPORTED'\\nNumber of already flagged certificates: \n'$NUMFLAGGED'\\nNumber of critical certificates: '$NUMCRITICAL'\\n\\nYours Sincerely\\nThe BIG-IP\" | mail -s \"Everthing went well!\" $MAILCC\n\nelse\necho \"Unit is standby. No action taken!\"\nfi\n
\n

 

\n

Had to change grep 'will expired' to _grep 'will expire'_, and now you can ignore certs to reduce the noise. Also removed the partition loop, you can check all certs from root dir.

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"repliesCount":0,"postTime":"2016-03-07T02:06:44.000-08:00","lastPublishTime":"2022-11-28T16:10:27.962-08:00","metrics":{"__typename":"MessageMetrics","views":2725},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107078","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:56273":{"__typename":"User","id":"user:56273","uid":56273,"login":"psxg_345884","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-05-05T08:03:51.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-10.svg?time=0"},"rank":{"__ref":"Rank:rank:41"},"entityType":"USER","eventPath":"community:zihoc95639/user:56273"},"ModerationData:moderation_data:107079":{"__typename":"ModerationData","id":"moderation_data:107079","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107079":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:56273"},"id":"message:107079","revisionNum":2,"uid":107079,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107079"},"body":"

Hello,

\n

I tried this script and I did some mods to it. However, I am getting the email body as follows:

\n

 

\n
/Common/appnet-test.crt expires on  GMT.\n
\n

 

\n

Not sure why it shows \"GMT\" rather than the actual expiration date.

\n

Please help.

\n

Thank you

\n

 

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"213","kudosSumWeight":0,"repliesCount":0,"postTime":"2018-01-11T11:01:56.000-08:00","lastPublishTime":"2022-11-28T16:10:03.035-08:00","metrics":{"__typename":"MessageMetrics","views":2760},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107079","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"User:user:391673":{"__typename":"User","id":"user:391673","uid":391673,"login":"REastman_249266","biography":null,"registrationData":{"__typename":"RegistrationData","status":null,"registrationTime":"2019-05-05T00:25:18.000-07:00"},"deleted":false,"email":"","avatar":{"__typename":"UserAvatar","url":"https://community.f5.com/t5/s/zihoc95639/m_assets/avatars/default/avatar-8.svg?time=0"},"rank":{"__ref":"Rank:rank:47"},"entityType":"USER","eventPath":"community:zihoc95639/user:391673"},"ModerationData:moderation_data:107080":{"__typename":"ModerationData","id":"moderation_data:107080","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107080":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:391673"},"id":"message:107080","revisionNum":1,"uid":107080,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107080"},"body":"

psxg,

 

\n

I would check your variable syntax for this line CERTEXPIRE=$(echo $line | awk -F 'expired on ' '{print $2}') you may have a typo. It sounds like the CERTEXPIRE variable isn't been set.

 

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"213","kudosSumWeight":0,"repliesCount":0,"postTime":"2018-01-11T11:13:41.000-08:00","lastPublishTime":"2018-01-11T11:13:41.000-08:00","metrics":{"__typename":"MessageMetrics","views":2766},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107080","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"ModerationData:moderation_data:107081":{"__typename":"ModerationData","id":"moderation_data:107081","status":"APPROVED","rejectReason":null,"isReportedAbuse":false,"rejectUser":null,"rejectTime":null,"rejectActorType":null},"ForumReplyMessage:message:107081":{"__typename":"ForumReplyMessage","author":{"__ref":"User:user:56273"},"id":"message:107081","revisionNum":2,"uid":107081,"depth":1,"hasGivenKudo":false,"subscribed":false,"board":{"__ref":"Forum:board:TechnicalForum"},"parent":{"__ref":"ForumTopicMessage:message:107068"},"conversation":{"__ref":"Conversation:conversation:107068"},"subject":"Re: Script to check for certificate expiration","moderationData":{"__ref":"ModerationData:moderation_data:107081"},"body":"

I have:

\n

 

\n
CERTEXPIRE=$(echo $line | awk -F 'expired on ''{print $2}')\n    CERTEXPIREEPOCH=$(date --date=\"$CERTEXPIRE\" +%s)\n    CERTEXPIREDIFF=$(expr $CERTEXPIREEPOCH - $CURRENTTIMEEPOCH)\n\nif (($CERTEXPIREDIFF < 2419200)); then\n            BODY=\"\\n\\nIf it was not previously done, please create a Service Now Ticket for Systems team in order to renew the certificate.\\n\\nIgnore this\nalarm if the certificate is /Common/ca-bundle.crt\\n\\nThis is an auto-generated e-mail from the BIG-IP.\"\n            echo -e \"$CERT expires on $CERTEXPIRE GMT.$BODY\" | mail -s \"WARNING: $CERT EXPIRES IN LESS THAN A MONTH!!\" $MAIL -c $MAILCC\n            echo \"--> WARNING: $CERT EXPIRES IN LESS THAN A MONTH!!\"\n            NUMCRITICAL=$[$NUMCRITICAL +1]\n    fi\n
\n

 

\n

I see it declared just fine. Is \"$CERTEXPIRE GMT.$BODY\"\" correct ?

","body@stripHtml({\"removeProcessingText\":false,\"removeSpoilerMarkup\":false,\"removeTocMarkup\":false,\"truncateLength\":200})@stringLength":"208","kudosSumWeight":0,"repliesCount":0,"postTime":"2018-01-11T11:34:12.000-08:00","lastPublishTime":"2022-11-28T16:09:34.944-08:00","metrics":{"__typename":"MessageMetrics","views":2765},"visibilityScope":"PUBLIC","placeholder":false,"originalMessageForPlaceholder":null,"isEscalated":null,"solution":false,"entityType":"FORUM_REPLY","eventPath":"category:Forums/community:zihoc95639board:TechnicalForum/message:107068/message:107081","replies":{"__typename":"MessageConnection","pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null},"edges":[]},"customFields":[],"attachments":{"__typename":"AttachmentConnection","edges":[],"pageInfo":{"__typename":"PageInfo","hasNextPage":false,"endCursor":null,"hasPreviousPage":false,"startCursor":null}}},"CachedAsset:text:en_US-components/community/NavbarDropdownToggle-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/community/NavbarDropdownToggle-1740415737689","value":{"ariaLabelClosed":"Press the down arrow to open the menu"},"localOverride":false},"CachedAsset:text:en_US-components/messages/EscalatedMessageBanner-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/EscalatedMessageBanner-1740415737689","value":{"escalationMessage":"Escalated to Salesforce by {username} on {date}","viewDetails":"View Details","modalTitle":"Case Details","escalatedBy":"Escalated by: ","escalatedOn":"Escalated on: ","caseNumber":"Case Number: ","status":"Status: ","lastUpdateDate":"Last Update: ","automaticEscalation":"automatic escalation","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-components/users/UserLink-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/users/UserLink-1740415737689","value":{"authorName":"View Profile: {author}","anonymous":"Anonymous"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserRank-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserRank-1740415737689","value":{"rankName":"{rankName}","userRank":"Author rank {rankName}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageTime-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageTime-1740415737689","value":{"postTime":"Published: {time}","lastPublishTime":"Last Update: {time}","conversation.lastPostingActivityTime":"Last posting activity time: {time}","conversation.lastPostTime":"Last post time: {time}","moderationData.rejectTime":"Rejected time: {time}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSolvedBadge-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSolvedBadge-1740415737689","value":{"solved":"Solved"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageSubject-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageSubject-1740415737689","value":{"noSubject":"(no subject)"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageBody-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageBody-1740415737689","value":{"showMessageBody":"Show More","mentionsErrorTitle":"{mentionsType, select, board {Board} user {User} message {Message} other {}} No Longer Available","mentionsErrorMessage":"The {mentionsType} you are trying to view has been removed from the community.","videoProcessing":"Video is being processed. Please try again in a few minutes.","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageCustomFields-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageCustomFields-1740415737689","value":{"CustomField.default.label":"Value of {name}"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageReplyButton-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageReplyButton-1740415737689","value":{"repliesCount":"{count}","title":"Reply","title@board:BLOG@message:root":"Comment","title@board:TKB@message:root":"Comment","title@board:IDEA@message:root":"Comment","title@board:OCCASION@message:root":"Comment"},"localOverride":false},"CachedAsset:text:en_US-components/messages/AcceptedSolutionButton-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/AcceptedSolutionButton-1740415737689","value":{"accept":"Mark as Solution","accepted":"Marked as Solution","errorHeader":"Error!","errorAdd":"There was an error marking as solution.","errorRemove":"There was an error unmarking as solution.","solved":"Solved"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMore-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMore-1740415737689","value":{"loadMore":"Show More"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable-1740415737689","value":{"loadMore":"Show More"},"localOverride":false},"CachedAsset:text:en_US-components/messages/MessageView/MessageViewInline-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/messages/MessageView/MessageViewInline-1740415737689","value":{"bylineAuthor":"{bylineAuthor}","bylineBoard":"{bylineBoard}","anonymous":"Anonymous","place":"Place {bylineBoard}","gotoParent":"Go to parent {name}"},"localOverride":false},"CachedAsset:text:en_US-components/customComponent/CustomComponent-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/customComponent/CustomComponent-1740415737689","value":{"errorMessage":"Error rendering component id: {customComponentId}","bannerTitle":"Video provider requires cookies to play the video. Accept to continue or {url} it directly on the provider's site.","buttonTitle":"Accept","urlText":"watch"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/users/UserAvatar-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/users/UserAvatar-1740415737689","value":{"altText":"{login}'s avatar","altTextGeneric":"User's avatar"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/ranks/UserRankLabel-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/ranks/UserRankLabel-1740415737689","value":{"altTitle":"Icon for {rankName} rank"},"localOverride":false},"CachedAsset:text:en_US-shared/client/components/nodes/NodeIcon-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-shared/client/components/nodes/NodeIcon-1740415737689","value":{"contentType":"Content Type {style, select, FORUM {Forum} BLOG {Blog} TKB {Knowledge Base} IDEA {Ideas} OCCASION {Events} other {}} icon"},"localOverride":false},"CachedAsset:text:en_US-components/tags/TagView/TagViewChip-1740415737689":{"__typename":"CachedAsset","id":"text:en_US-components/tags/TagView/TagViewChip-1740415737689","value":{"tagLabelName":"Tag name {tagName}"},"localOverride":false}}}},"page":"/forums/ForumMessagePage/ForumMessagePage","query":{"boardId":"technicalforum","messageSubject":"script-to-check-for-certificate-expiration","messageId":"107068"},"buildId":"UtG3-Pbti3STtL2t_tPEH","runtimeConfig":{"buildInformationVisible":false,"logLevelApp":"info","logLevelMetrics":"info","openTelemetryClientEnabled":false,"openTelemetryConfigName":"f5","openTelemetryServiceVersion":"25.1.0","openTelemetryUniverse":"prod","openTelemetryCollector":"http://localhost:4318","openTelemetryRouteChangeAllowedTime":"5000","apolloDevToolsEnabled":false,"inboxMuteWipFeatureEnabled":false},"isFallback":false,"isExperimentalCompile":false,"dynamicIds":["./components/seo/QAPageSchema/QAPageSchema.tsx","./components/customComponent/CustomComponent/CustomComponent.tsx","./components/community/Navbar/NavbarWidget.tsx","./components/community/Breadcrumb/BreadcrumbWidget.tsx","./components/messages/TopicWithThreadedReplyListWidget/TopicWithThreadedReplyListWidget.tsx","./components/featured/content/FeaturedContentWidget/FeaturedContentWidget.tsx","./components/messages/MessageListForNodeByRecentActivityWidget/MessageListForNodeByRecentActivityWidget.tsx","./components/messages/RelatedContentWidget/RelatedContentWidget.tsx","./components/messages/MessageView/MessageViewStandard/MessageViewStandard.tsx","./components/messages/ThreadedReplyList/ThreadedReplyList.tsx","../shared/client/components/common/List/UnstyledList/UnstyledList.tsx","./components/messages/MessageView/MessageView.tsx","../shared/client/components/common/Pager/PagerLoadMore/PagerLoadMore.tsx","../shared/client/components/common/Pager/PagerLoadMorePreviousNextLinkable/PagerLoadMorePreviousNextLinkable.tsx","./components/messages/MessageView/MessageViewInline/MessageViewInline.tsx","./components/customComponent/CustomComponentContent/CustomComponentScripts.tsx","../shared/client/components/common/List/UnwrappedList/UnwrappedList.tsx","./components/tags/TagView/TagView.tsx","./components/tags/TagView/TagViewChip/TagViewChip.tsx"],"appGip":true,"scriptLoader":[]}