diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 165a93987a..b7c65424bf 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -549,7 +549,8 @@ sub GenerateFiles
 		my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion();
 
 		# More symbols are needed with OpenSSL 1.1.0 and above.
-		if ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0')
+		if (   ($digit1 == '3' && $digit2 >= '0' && $digit3 >= '0')
+			|| ($digit1 == '1' && $digit2 == '1' && $digit3 >= '0')
 		{
 			$define{HAVE_ASN1_STRING_GET0_DATA} = 1;
 			$define{HAVE_BIO_GET_DATA}          = 1;
@@ -953,11 +954,17 @@ sub AddProject
 		$proj->AddIncludeDir($self->{options}->{openssl} . '\include');
 		my ($digit1, $digit2, $digit3) = $self->GetOpenSSLVersion();
 
+		# Ensure that we have OpenSSL 1.0.1 or newer
+		if (    $digit1 < '1'
+			|| ($digit1 == '1' && $digit2 == '0' && $digit3 == '0'))
+			die 'Unsupported OpenSSL version, must be 1.0.1 or newer';
+
 		# Starting at version 1.1.0 the OpenSSL installers have
 		# changed their library names from:
 		# - libeay to libcrypto
 		# - ssleay to libssl
-		if ($digit1 >= '1' && $digit2 >= '1' && $digit3 >= '0')
+		if (   ($digit1 == '3' && $digit2 >= '0' && $digit3 >= '0')
+			|| ($digit1 == '1' && $digit2 == '1' && $digit3 >= '0')
 		{
 			my $dbgsuffix;
 			my $libsslpath;
