diff --git src/wp-includes/media.php src/wp-includes/media.php
index 89b88df..9783b61 100644
--- src/wp-includes/media.php
+++ src/wp-includes/media.php
@@ -766,6 +766,12 @@ function wp_get_attachment_image_src( $attachment_id, $size = 'thumbnail', $icon
 			$image = array( $src, $width, $height );
 		}
 	}
+
+	// Force HTTPS schemes in the admin when force_ssl_admin() is true.
+	if ( $image && is_admin() && force_ssl_admin() ) {
+		$image[0] = set_url_scheme( $image[0], 'https' );
+	}
+
 	/**
 	 * Filter the image src result.
 	 *
diff --git tests/phpunit/tests/media.php tests/phpunit/tests/media.php
index 3da75a0..cbf3d23 100644
--- tests/phpunit/tests/media.php
+++ tests/phpunit/tests/media.php
@@ -1133,4 +1133,24 @@ EOF;
 		// Intermediate sized GIFs should not include the full size in the srcset.
 		$this->assertFalse( strpos( wp_calculate_image_srcset( $size_array, $large_src, $image_meta ), $full_src ) );
 	}
+
+	/**
+	 * @ticket 34109
+	 */
+	function test_wp_get_attachment_image_src_https_admin() {
+		// Save our starting setup.
+		$force_ssl_admin = force_ssl_admin();
+		$curent_screen = get_current_screen();
+
+		force_ssl_admin( true );
+		set_current_screen( 'dashboard' );
+
+		$image = wp_get_attachment_image_src( self::$large_id );
+
+		$this->assertSame( $image[0], set_url_scheme( $image[0], 'https' ) );
+
+		// Leave things as we found them.
+		force_ssl_admin( $force_ssl_admin );
+		$GLOBALS['current_screen'] = $curent_screen;
+	}
 }
