欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本檢查域名證書是否過期的流程分析

 更新時間:2022年02月07日 08:40:34   作者:CurdBoys  
由于域名即將過期,所以最近打算替換相關網(wǎng)站證書為最新的,主要的流程就是讀取文件中的域名,然后進行https訪問獲取到證書過期的時間,如果域名連接不上,則會直接跳過,具體詳細過程跟隨小編一起通過本文學習下吧

最近公司的域名準備過期了,防止用戶訪問的時候出現(xiàn)異常,所以最近我們準備替換相關網(wǎng)站證書為最新的。
(一般HTTPS證書有效期為1年,證書過期后或者該證書不是該域名的有效證書時,在瀏覽器中訪問會出現(xiàn)如下提示,這時候如果還是要訪問只能通過點擊"高級",忽略風險繼續(xù)訪問)

我們這里有些域名是直接解析到自己的業(yè)務機器上的,并沒有經(jīng)過運維管理的nginx再來做轉發(fā),所以針對這部分域名,就需要的單獨到業(yè)務機器上下載最新的域名證書,然后替換了一下證書,并重啟一下nginx (nginx -s reload) 。

這里替換證書的時候,我遇到了一個坑,就是之前有些域名并不支持https的,然后我就打算換成支持https。結果按照原來的方式配置了https,訪問的時候報不安全,提示使用了舊版tsl1.0或tsl1.1的協(xié)議,我確保了該域名的協(xié)議方式已經(jīng)修改了,但是瀏覽器訪問的時候,還是提示不安全,網(wǎng)上找了一段時間,才知道要nginx所有的域名配置都修改了,才會生效的,不然nginx 有可能取某個 域名配置的ssl 配置來連接ssl,但是最新的域名下的ssl配置不生效。
按F12打開開發(fā)者模式,切到 “Security” tab下頁面可以看到不安全的原因,如果是使用了舊版tsl1.0或tsl1.1的協(xié)議,則在“Connection”中顯示使用了TSL1.0或者TSL1.1的協(xié)議。下圖的例子是表示無法信任服務器,因為未提供有效的證書。

理論上所有域名都統(tǒng)一由運維部門來管理,直接解析到運維的nginx 再轉發(fā)到自己的業(yè)務機器才是比較好的方案,不然會導致域名不好管理。但是很多歷史域名還沒時間去修改,就只能手動替換。

這個域名數(shù)量會有點多,而且也不知道還有哪些域名還沒替換的,因此計劃用shell腳本去檢查,并且可以將該shell腳本設置為定時任務,每個月或每天定時檢查一下,如果有域名要過期了,則告警出來。在網(wǎng)上找了一下相關資料,再根據(jù)自己的需求,改造了一版的shell腳本如下:

#!/bin/bash
# 檢測https證書有效
echo '開始檢查 https證書有效期 '

# 先寫域名內(nèi)容到文件中,再讀取文件檢查證書是否過期了
# 先清空文件
echo '' > /tmp/https_list.txt 

# 這里替換為自己的檢查的域名即可
echo 'www.baidu.com' >> /tmp/https_list.txt
echo 'www.bing.com' >> /tmp/https_list.txt
echo 'www.google.com' >> /tmp/https_list.txt

source /etc/profile

# 定義錯誤的域名
errorDominStr=""

while read line; do
    echo "====================================================================================="
    
    echo "當前檢測的域名:" $line
    end_time=$(echo | timeout 1 openssl s_client -servername $line -connect $line:443 2>/dev/null | openssl x509 -noout -enddate 2>/dev/null | awk -F '=' '{print $2}' )
    ([ $? -ne 0 ] || [[ $end_time == '' ]]) && echo '該域名鏈接不上,跳到下一個域名' && continue
    
    end_times=`date -d "$end_time" +%s `
    current_times=`date -d "$(date -u '+%b %d %T %Y GMT') " +%s `
    
    let left_time=$end_times-$current_times
    days=`expr $left_time / 86400`
    echo "剩余天數(shù): " $days
    
    [ $days -lt 60 ] && echo "https 證書有效期少于60天,存在風險"  && errorDominStr="$errorDominStr \n $line"
    
done < /tmp/https_list.txt

echo -e "準備過期的域名為: \n  $errorDominStr"

if [ "$errorDominStr" = "" ]  
then  
  echo "不包含準備過期的域名"  
else    
  echo "包含準備過期的域名" && exit 10  
fi   
echo "Good bye!"
exit 0

主要的流程就是讀取文件中的域名,然后進行https訪問獲取到證書過期的時間,如果域名連接不上,則會直接跳過,如果該域名證書過期時間小于 60 天,則匯總起來,最后判斷是否包含準備過期的域名,如果包含則異常退出exit 10

運行后的結果如下:

參考資料:

https://blog.51cto.com/lee90/2410670 shell腳本檢測https證書有效期
https://python.01314.cn/201812519.html 使用python檢查SSL證書到期情況

到此這篇關于shell腳本檢查域名證書是否過期的流程分析的文章就介紹到這了,更多相關shell腳本檢查域名證書內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Shell編程 Bash引號的那點事

    Shell編程 Bash引號的那點事

    促使我想寫這個系列的文章,是因為看到總有人提到相同的問題,犯相同的錯誤,曾經(jīng)我也是這么過來的,不忍心看到后面還有人經(jīng)常這么曲折的過來
    2015-01-01
  • Shell命令之數(shù)組表示語法學習

    Shell命令之數(shù)組表示語法學習

    這篇文章主要為大家介紹了Shell命令之數(shù)組表示語法學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • linux定時任務出現(xiàn)command not found解決辦法

    linux定時任務出現(xiàn)command not found解決辦法

    這篇文章主要介紹了 linux定時任務出現(xiàn)command not found解決辦法的相關資料,需要的朋友可以參考下
    2017-05-05
  • 深入了解Linux的文件權限

    深入了解Linux的文件權限

    Shell是操作系統(tǒng)外殼程序的統(tǒng)稱,Windos中的圖形化界面、Linux中的命令行外殼都是外殼程序。CentOS中的外殼程序被稱為bash。本文主要是和大家聊聊Linux中的文件權限,感興趣的可以了解一下
    2022-10-10
  • Linux運維常用命令

    Linux運維常用命令

    這篇文章主要介紹了Linux在日常運維過程中需要經(jīng)常用到的命令,非常的全面,有需要的小伙伴可以參考下
    2016-12-12
  • shell 計算器的實現(xiàn)示例

    shell 計算器的實現(xiàn)示例

    在使用Linux時,我們有時會需要做一些計算,那么我們就可能需要用到計算器,本文主要介紹了shell 計算器的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • shell簡單處理mysql查詢結果的方法

    shell簡單處理mysql查詢結果的方法

    今天小編就為大家分享一篇shell簡單處理mysql查詢結果的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • linux 網(wǎng)卡配置詳解及實例

    linux 網(wǎng)卡配置詳解及實例

    這篇文章主要介紹了linux 網(wǎng)卡配置詳解及實例的相關資料,需要的朋友可以參考下
    2017-05-05
  • Ubuntu中的sudo和su命令介紹

    Ubuntu中的sudo和su命令介紹

    這篇文章介紹了Ubuntu中的sudo和su命令,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • shell腳本實現(xiàn)輸入密碼顯示星號

    shell腳本實現(xiàn)輸入密碼顯示星號

    本文給大家分享使用shell腳本實現(xiàn)輸入密碼顯示星號的腳本寫法,在文章末尾給大家補充了shell輸入密碼時關閉屏幕回顯的實現(xiàn)方法,需要的朋友參考下吧
    2017-01-01

最新評論