当前位置: 首页 > news >正文

网站开发的问题手工活接单在家做有正规网站吗

网站开发的问题,手工活接单在家做有正规网站吗,发放淘宝优惠券的网站怎么做,汕头建设吧 百度贴吧哈喽大家好,我是咸鱼 我们知道 SSL 证书是会过期的,一旦过期之后需要重新申请。如果没有及时更换证书的话,就有可能导致网站出问题,给公司业务带来一定的影响 所以说我们要每隔一定时间去检查网站上的 SSL 证书是否过期 如果公…

哈喽大家好,我是咸鱼

我们知道 SSL 证书是会过期的,一旦过期之后需要重新申请。如果没有及时更换证书的话,就有可能导致网站出问题,给公司业务带来一定的影响

所以说我们要每隔一定时间去检查网站上的 SSL 证书是否过期

如果公司业务体量较大的话,肯定不止一个域名,而一个域名后面又会对应着多台机器,如果我们手动输入命令一台台检测的话,所需要的精力和时间是很大的

那么今天咸鱼跟大家介绍一个自己平常在用的自动检测 SSL 是否过期的 shell 脚本

思路

前面我们说到,一个公司(一个业务)底下可能会有多个域名多个 IP 地址,所以说我们需要整理出来放到一个文件里面,如下所示

#domain.txt
#域名:ip 池
www.baidu.com:180.101.50.242,180.101.50.188
www.bing.com:202.89.233.101,202.89.233.100

整理出来之后,后面只需要循环遍历 domain.txt 中的每一行内容,然后把域名和 ip 地址分别提取出来一个一个去检测就行了

首先我们对 domain.txt 中的内容进行循环遍历,提取出域名和 ip 池

for line in $(cat domain.txt)
dodomain=$(echo ${line} | awk -F':' '{print $1}')ip_pool=$(echo ${line} | awk -F '[a-z]:' '{print $2}' | sed 's/\,/ /g')...
done

然后再遍历 ip 池,取出每一个 ip 地址,然后执行检测命令,把检测到的结果存进 text 变量里

for line in $(cat domain.txt)
dodomain=$(echo ${line} | awk -F':' '{print $1}')ip_pool=$(echo ${line} | awk -F '[a-z]:' '{print $2}' | sed 's/\,/ /g')# 遍历 ip 池for ip in ${ip_pool}doecho -e "\e[33m---------------start to check---------------\e[0m"echo -e "ip:${ip}\ndomain:${domain}"# 检测命令text=$(echo | openssl s_client -servername ${domain} -connect ${ip}:443 2>/dev/null | openssl x509 -noout -dates -subject)done
done

我们着重看下检测命令

echo | openssl s_client -servername ${domain} -connect ${ip}:443 2>/dev/null | openssl x509 -noout -dates -subject
  1. echo: 这个命令用于向标准输出打印一个空行
  2. openssl s_client -servername www.baidu.com -connect 180.101.50.242:443: 这部分命令使用 openssl 工具来建立一个与指定网站的 SSL 连接。 -servername选项指定了要连接的服务器的主机名-connect 选项指定了服务器的 IP 地址和端口号)
  3. 2>/dev/null: 这部分是重定向,将标准错误输出重定向到 /dev/null 设备文件,这样连接服务器的时候如果报错错误信息就不会显示在终端上
  4. openssl x509 -noout -dates: 这部分命令用于提取 SSL 证书的有效期和主题信息。openssl x509是用于处理 X.509 证书的命令,-noout 选项表示不打印证书本身,而是打印其他信息,-dates 选项表示打印证书的有效期

输出信息如下(即 text 变量内容)

# echo | openssl s_client -servername www.baidu.com -connect 180.101.50.242:443 2>/dev/null | openssl x509 -noout -dates
notBefore=Jul  6 01:51:06 2023 GMT
notAfter=Aug  6 01:51:05 2024 GMT

其中 notBefore 是开始时间,notAfter 是过期时间

需要注意的是,如果提取不到 SSL 证书的信息,那么 text 里面是没有内容的,所以在检测过期时间之前我们需要判断一下

if [[ ${text} ]] # text 里面有内容,不为空
thendo something
fi

然后我们提取出输出的 SSL 证书信息中 notAfter 的值,然后转换成时间戳的形式,并且求出当前的时间戳

end_date=$(echo "$text" | grep -i "notAfter" | awk -F '=' '{print $2}') # 证书过期时间
end_timestamp=$(date -d "$end_date" +%s) # 转换成时间戳
current_timestamp=$(date +%s) # 当前时间戳

最后我们用过期时间减去当前时间,得出剩余时间,再对剩余时间做判断

remain_date=$(( (${end_timestamp} - ${current_timestamp}) / 86400 ))
if [[ ${remain_date} -lt 7 && ${remain_date} -ge 0 ]]
thenecho -e "\e[31m剩余时间小于七天!请及时更换证书!\e[0m"echo -e "\e[31mip: ${ip}, ${domain}\e[0m"
elif [[ ${remain_date} -lt 0 ]]
thenecho -e "\e[31m证书已过期!请及时更换证书!\e[0m"
elseecho -e "\e[32m剩余天数为:${remain_date}\e[0m"
fi

我们来看下执行结果:

  • 证书未过期情况

在这里插入图片描述

  • 证书快过期
    在这里插入图片描述

  • 证书已过期
    在这里插入图片描述

完整脚本

for line in $(cat domain.txt)
dodomain=$(echo ${line} | awk -F':' '{print $1}')ip_pool=$(echo ${line} | awk -F '[a-z]:' '{print $2}' | sed 's/\,/ /g')for ip in ${ip_pool}doecho -e "\e[33m---------------start to check---------------\e[0m"echo -e "ip:${ip}\ndomain:${domain}"text=$(echo | openssl s_client -servername ${domain} -connect ${ip}:443 2>/dev/null | openssl x509 -noout -dates )# 判断命令是否执行成功,执行成功的话 text 变量里面是有内容的if [[ ${text} ]] thenend_date=$(echo "$text" | grep -i "notAfter" | awk -F '=' '{print $2}') # 证书过期时间end_timestamp=$(date -d "$end_date" +%s) # 转换成时间戳current_timestamp=$(date +%s) # 当前时间戳# 如果证书过期时间减去当前时间的天数小于七天的话,则提示需要准备更换证书了remain_date=$(( (${end_timestamp} - ${current_timestamp}) / 86400 ))if [[ ${remain_date} -lt 7 && ${remain_date} -ge 0 ]]thenecho -e "\e[31m剩余时间小于七天!请及时更换证书!\e[0m"echo -e "\e[31mip: ${ip}, ${domain}\e[0m"elif [[ ${remain_date} -lt 0 ]]thenecho -e "\e[31m证书已过期!请及时更换证书!\e[0m"elseecho -e "\e[32m剩余天数为:${remain_date}\e[0m"fielseecho -e "\e[31mError!${ip}\e[0m"echo -e "\e[31m${domain}\e[0m"fidone
done
http://www.yayakq.cn/news/585088/

相关文章:

  • 手机网站开发框架杭州职业能力建设网
  • cookie做网站访问量网站设计的公司报价
  • 男人女人做那个网站自学电商运营教程
  • 临沂网站开发技术员网站后台密码文件
  • 精美个人主页安徽建站优化哪里有
  • 成都前几年网站建设公司深圳软件公司招聘
  • 在电脑上怎么做网站html代码hr表示
  • 南沙区网站建设企业管理咨询做什么的
  • 网站开发绑定微信qq注册专门做书单的网站
  • 濮阳建设企业网站公司购物商城外贸网站建设
  • 5个网站建设大连建设网网址是多少啊
  • 定制网站设计方案wordpress pdf下载插件
  • 自己做网络主播的网站建设网站相关法律条文
  • 百度资源站长平台专门做自助游的网站
  • 建立企业网站方案网站开发前端规范
  • 网站开发用的开源系统包牛牛网站怎么做
  • 做文库网站怎么赚钱吗电子商务网站建设的试卷
  • 网站开发怎么设置打印按钮做app一般多少钱
  • 中兴通讯的网站建设分析昆明网站设计能实现什么功能
  • 四会城乡建设局网站哈尔滨网络推广经理招聘
  • 好的装修效果图网站能自己做生物实验的网站
  • 西安网站优化平台天蓝色网站
  • 网站图片分辨率尺寸网站建设报价单 excel
  • 金色世纪做网站的是哪个岗位采购管理系统软件
  • 重庆网站建设网站网站建设成功案例宣传
  • 蓝色经典通用网站模板徐州苏视网站建设
  • 郑州便宜网站建设wordpress朗读功能
  • 揭阳 网站建设wordpress安装上传
  • 黑五手表网站分类目录模板
  • 天宁寺网站建设推荐好用的分销平台