檢測ssl過期時間並傳送郵件

2021-10-01 07:08:08 字數 4806 閱讀 5540

通過shell可以檢測ssh證書過期時間。

關鍵指令碼為:

#提取主要資訊,過期時間

curl -o /dev/null -m 10 --connect-timeout 10 -svil 2>&1|grep 「expire date:」|sed 『s/*\s+expire date:\s+//』

[root@aliyun ~]

# curl -o /dev/null -m 10 --connect-timeout 10 -svil 2>&1|grep "expire date:"|sed 's/*\s\+expire date:\s\+//'

jun 25 05:31:02 2020 gmt

[root@aliyun ~]

#

整合**

#!/bin/bash

# author: licess

# website:

checkdomains=

"example.com abc.com"

alert_email=

""alert_days=

"10"

cur_dir=

$(dirname $0)

check(

) 2>

&1|grep

"expire date:"

|sed

's/*\s\+expire date:\s\+//'

) expire_time=

$(date -d "$" +%s)

alert_time=

$(($-$*

86400

)) expire_date_read=

$(date -d @$

"+%y-%m-%d"

) echo

"domain:$ expire date: $"if[

$ -ge $]&&

[$!=""];

then

python $/sendmail.py "$"

"domain: $ ssl certificate expire notice"

"domain: $ ssl certificate will expire on $."

fisleep 2

}for domain in$;

do check $

done

呼叫python傳送郵件

#! /usr/bin/env python

# -*- coding: utf-8 -*-

import sys, smtplib

from email.mimemultipart import mimemultipart

from email.mimetext import mimetext

mailto = sys.ar**[1]

mailsubject = sys.ar**[2]

mailbodytext = sys.ar**[3]

mailserver =

'smtp.163.com'

mailserverport =

'465'

mailfrom =

'***[email protected]'

mailpassword =

'***xx'

mailalias =

'monitor'

#you can get smtp server and port from

print mailto

print mailsubject

print mailbodytext

msg = mimetext(mailbodytext,

'plain'

,'utf-8'

)msg[

'to'

]= mailto

msg[

'from']=

'%s <%s>'

%(mailalias, mailfrom)

msg[

'subject'

]= mailsubject

session = smtplib.smtp_ssl(mailserver,mailserverport)

#session = smtplib.smtp(mailserver,mailserverport)

#session.set_debuglevel(1)

session.login(mailfrom, mailpassword)

smtpresult = session.sendmail(mailfrom, mailto, msg.as_string())

session.quit(

)if smtpresult:

errstr =

""for recip in smtpresult.keys():

errstr =

"""could not delivery mail to: %s

server said: %s

%s%s"""

%(recip, smtpresult[recip][0

], smtpresult[recip][1

], errstr)

#raise smtplib.smtpexception, errstr

print errstr

else

:print

'message sent successfully.'

ssl_check.sh 中 checkdomains 為網域名稱列表,每個網域名稱空格分開,alert_email 為提醒郵箱,不填的話不郵件提醒,alert_days 為提前多少天提醒。

sendmail.py 中 mailserver 填寫你郵箱smtp伺服器的位址,mailserverport 填寫smtp伺服器端口,mailfrom 填寫郵箱,mailpassword 填寫郵箱密碼。因為目前很多vps服務商都將25埠封了所有預設使用ssl協議傳送,具體各個郵件服務商的smtp伺服器位址、埠資訊可以通過 常見郵件服務商smtp伺服器端口查詢 這裡進行查詢。

設定好前面的資訊可以 /root/ssl_check.sh 執行一下試試,看能不能正常獲取到期時間。

沒有問題的話可以在crontab中新增上 0 5 * * * /root/ssl_check.sh 這樣每天凌晨5點會檢查一次。

SSL過期時間檢視

很多 都用了https協議,但是需要注意ssl證書的過期時間,檢視方式有很多種。最直接的方法是通過瀏覽器的 安全鎖 檢視,以谷歌瀏覽器訪問csdn首頁為例 如果瀏覽器在訪問https 沒有顯示 安全鎖 可以通過f12 security certificate view certificate檢視 檢...

MySQLdump備份並傳送郵件

概述 文件中使用smtp協議,利用qq郵箱傳送郵件,其中客戶端授權碼是在開啟qq郵箱smtp服務是官方給予的,所以要牢記!1 配置smtp linux yum install y mailx 修改配置檔案 vi etc mail.rc 在末尾追加如下內容並儲存 set from x qq.com 設...

python檢測ipa證書過期時間

我們打出的ipa包,對應的證書和mobileprovision檔案是會過期的 過期了之後,ipa就會無法執行或安裝 為了方便知道打出的ipa的過期時間,下面提供乙個python指令碼,方便檢測 需要在mac上執行,把你的ipa放到pyhton指令碼所在的目錄 python指令碼如下 check ti...