mirror of
				https://github.com/drwetter/testssl.sh.git
				synced 2025-10-31 13:55:25 +01:00 
			
		
		
		
	In determine_trust(), use the OpenSSL '-trusted_first' flag to ignore the now-expired DST Root CA X3 root certificate. Fixes #1995.
This commit is contained in:
		| @@ -7264,9 +7264,9 @@ determine_trust() { | ||||
|           # in a subshell because that should be valid here only | ||||
|           (export SSL_CERT_DIR="/dev/null"; export SSL_CERT_FILE="/dev/null" | ||||
|           if [[ $certificates_provided -ge 2 ]]; then | ||||
|                $OPENSSL verify -purpose sslserver -CAfile <(cat $ADDTL_CA_FILES "$bundle_fname") -untrusted $TEMPDIR/intermediatecerts.pem $HOSTCERT >$TEMPDIR/${certificate_file[i]}.1 2>$TEMPDIR/${certificate_file[i]}.2 | ||||
|                $OPENSSL verify $TRUSTED1ST -purpose sslserver -CAfile <(cat $ADDTL_CA_FILES "$bundle_fname") -untrusted $TEMPDIR/intermediatecerts.pem $HOSTCERT >$TEMPDIR/${certificate_file[i]}.1 2>$TEMPDIR/${certificate_file[i]}.2 | ||||
|           else | ||||
|                $OPENSSL verify -purpose sslserver -CAfile <(cat $ADDTL_CA_FILES "$bundle_fname") $HOSTCERT >$TEMPDIR/${certificate_file[i]}.1 2>$TEMPDIR/${certificate_file[i]}.2 | ||||
|                $OPENSSL verify $TRUSTED1ST -purpose sslserver -CAfile <(cat $ADDTL_CA_FILES "$bundle_fname") $HOSTCERT >$TEMPDIR/${certificate_file[i]}.1 2>$TEMPDIR/${certificate_file[i]}.2 | ||||
|           fi) | ||||
|           verify_retcode[i]=$(awk '/error [1-9][0-9]? at [0-9]+ depth lookup:/ { if (!found) {print $2; found=1} }' $TEMPDIR/${certificate_file[i]}.1 $TEMPDIR/${certificate_file[i]}.2) | ||||
|           [[ -z "${verify_retcode[i]}" ]] && verify_retcode[i]=0 | ||||
| @@ -19326,6 +19326,8 @@ find_openssl_binary() { | ||||
| 
 | ||||
|      [[ "$(echo -e "\x78\x9C\xAB\xCA\xC9\x4C\xE2\x02\x00\x06\x20\x01\xBC" | $OPENSSL zlib -d 2>/dev/null)" == zlib ]] && HAS_ZLIB=true | ||||
| 
 | ||||
|      $OPENSSL verify -trusted_first </dev/null 2>&1 | grep -q '^usage' || TRUSTED1ST="-trusted_first" | ||||
| 
 | ||||
|      if [[ -n "$CONNECT_TIMEOUT" ]] || [[ -n "$OPENSSL_TIMEOUT" ]]; then | ||||
|           # We don't set a general timeout as we might not have "timeout" installed and we only | ||||
|           # do what is instructed. Thus we check first what the command line params were, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Steve Mokris
					Steve Mokris