@@ -51,6 +51,8 @@ def parse_args():
5151 parser .add_argument ('-v' , '--verbose' , action = 'store_true' , default = None , help = 'Verbose?' )
5252 parser .add_argument ('-key' , default = "openshift.master.public.ssl.left" , help = 'zabbix key' )
5353 parser .add_argument ('-l' , '--list' , nargs = '+' , help = 'domain that need to check' , required = True )
54+ parser .add_argument ('--add_ca_file' , nargs = '+' , help = 'add CA certificate for validation' , default = [], )
55+ parser .add_argument ('--add_ca_path' , nargs = '+' , help = 'add CA certificates from path for validation' , default = [], )
5456 return parser .parse_args ()
5557
5658def send_metrics (day_left , zabbixkey , verbose ):
@@ -65,7 +67,7 @@ def send_metrics(day_left, zabbixkey, verbose):
6567
6668
6769
68- def get_ssl_certificate_expiry_days (domain_name ):
70+ def get_ssl_certificate_expiry_days (domain_name , args = None , ):
6971 """get the domain expired date"""
7072 ssl_port = 443
7173 #docker-registry.default.svc.cluster.local:5000
@@ -77,6 +79,15 @@ def get_ssl_certificate_expiry_days(domain_name):
7779 context .verify_mode = ssl .CERT_REQUIRED
7880 context .check_hostname = True
7981 context .load_default_certs ()
82+
83+ for ca_file in args .add_ca_file :
84+ context .load_verify_locations (cafile = ca_file )
85+ logger .info ("add_ca_file: " + ca_file )
86+
87+ for ca_path in args .add_ca_path :
88+ context .load_verify_locations (capath = ca_path )
89+ logger .info ("add_ca_path: " + ca_path )
90+
8091 sock = context .wrap_socket (conn , server_hostname = domain_name )
8192 cert = ssl .DER_cert_to_PEM_cert (sock .getpeercert (True ))
8293 x509 = OpenSSL .crypto .load_certificate (OpenSSL .crypto .FILETYPE_PEM , cert )
@@ -108,7 +119,7 @@ def main():
108119 exception = None
109120 try :
110121 for url in urls :
111- expire_day_left = get_ssl_certificate_expiry_days (url )
122+ expire_day_left = get_ssl_certificate_expiry_days (url , args = args , )
112123 if expire_day_small > expire_day_left :
113124 expire_day_small = expire_day_left
114125 #return the smallest day on this cluster
0 commit comments