diff --git a/README.md b/README.md
index f921e890c62..6c8f75af288 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
**An open-source Linux distribution built and optimized for [Azure](https://azure.microsoft.com/), with sources derived from [Fedora Linux](https://fedoraproject.org/).** Azure Linux provides a secured, reliable operating system for virtual machines, containers, and bare-metal platforms.
-Azure Linux is built on a robust open-source foundation from the Fedora ecosystem and enhanced with Azure-specific innovations. This provides the familiarity of the RPM package ecosystem, while adding Azure-native security, compliance, and operational capabilities.
+Azure Linux is built on a robust open-source foundation from the Fedora ecosystem and enhanced with Azure-specific innovations. This provides the familiarity of the RPM package ecosystem, while adding Azure-native security, compliance, and operational capabilities.
Key features of Azure Linux include: hardened security posture, an Azure-optimized kernel, supply chain security, native Azure integration, and a predictable lifecycle.
@@ -55,6 +55,36 @@ _Note: Support for the ISO is community based. Before filing a new bug or featur
+
+🐧 Windows Subsystem for Linux (WSL)
+
+To try Azure Linux on the Windows Subsystem for Linux, please download the `.wsl` distribution package for your architecture:
+
+- [x86_64](https://aka.ms/azurelinux-4.0-x86_64.wsl)
+- [ARM64](https://aka.ms/azurelinux-4.0-aarch64.wsl)
+
+Before installing a downloaded package, [verify the checksum and signature of the `.wsl` package](./docs/verify-wsl-signature-and-checksum.md).
+
+Install the distribution using `wsl`:
+
+```powershell
+wsl --install --from-file "C:\Path\To\AzureLinux-4.0-ARCH.wsl"
+```
+
+To list all the installed distributions:
+
+```powershell
+wsl --list
+```
+
+To use the distro:
+
+```powershell
+wsl -d AzureLinux-4
+```
+
+
+
## What's in this branch?
Azure Linux 4 is an RPM-based distribution optimized for Azure and modern cloud workloads. It is defined by a set of TOML configuration files and targeted *overlays* applied to [Fedora Linux](https://fedoraproject.org/), its upstream base.
diff --git a/docs/verify-wsl-signature-and-checksum.md b/docs/verify-wsl-signature-and-checksum.md
new file mode 100644
index 00000000000..e5d9d74875f
--- /dev/null
+++ b/docs/verify-wsl-signature-and-checksum.md
@@ -0,0 +1,79 @@
+# Verifying Pre-Built WSL Distribution Package
+It is strongly recommended that the integrity of the `.wsl` distribution package is verified after downloading it. This is a two-step process:
+1. Ensure that the checksum file has not been tampered with by verifying the signature against Azure Linux's RPM signing public key.
+1. Check that the `.wsl` package was not corrupted during the download.
+
+The following bash script shows the commands necessary to download the `.wsl` package and check the signature. Run these on any Linux machine, or from inside an existing WSL distribution, before installing the package with `wsl --install --from-file`.
+
+## x86_64 WSL Package Verification
+```bash
+# Download the necessary files
+# The -O flag is required: the checksum file records the package as
+# 'AzureLinux-4.0-x86_64.wsl', so the saved file name has to match exactly
+wget https://aka.ms/azurelinux-4.0-x86_64.wsl -O AzureLinux-4.0-x86_64.wsl
+wget https://aka.ms/azurelinux-4.0-x86_64-wsl-checksum
+wget https://aka.ms/azurelinux-4.0-x86_64-wsl-checksum-signature
+wget https://raw.githubusercontent.com/microsoft/azurelinux/refs/heads/4.0/base/comps/azurelinux-repos/RPM-GPG-KEY-azurelinux-4.0-primary
+
+# Set Variables for the checksum and signature file names
+CHECKSUM_FILE="azurelinux-4.0-x86_64-wsl-checksum"
+SIGNATURE_FILE="azurelinux-4.0-x86_64-wsl-checksum-signature"
+
+# Import the RPM signing public key into the local GPG keystore
+gpg --import RPM-GPG-KEY-azurelinux-4.0-primary
+
+# Verify that the checksum file was produced by the Azure Linux team
+# The output of this command should contain the following string:
+# 'Good signature from "Mariner RPM Release Signing "'
+gpg --verify "$SIGNATURE_FILE" "$CHECKSUM_FILE"
+
+# Verify that the .wsl package checksum matches the expected checksum
+# We need to fix the line endings on the checksum file to get sha256sum to accept it
+tr -d '\r' < "$CHECKSUM_FILE" | sha256sum --check -
+```
+
+## aarch64 WSL Package Verification
+```bash
+# Download the necessary files
+# The -O flag is required: the checksum file records the package as
+# 'AzureLinux-4.0-aarch64.wsl', so the saved file name has to match exactly
+wget https://aka.ms/azurelinux-4.0-aarch64.wsl -O AzureLinux-4.0-aarch64.wsl
+wget https://aka.ms/azurelinux-4.0-aarch64-wsl-checksum
+wget https://aka.ms/azurelinux-4.0-aarch64-wsl-checksum-signature
+wget https://raw.githubusercontent.com/microsoft/azurelinux/refs/heads/4.0/base/comps/azurelinux-repos/RPM-GPG-KEY-azurelinux-4.0-primary
+
+# Set Variables for the checksum and signature file names
+CHECKSUM_FILE="azurelinux-4.0-aarch64-wsl-checksum"
+SIGNATURE_FILE="azurelinux-4.0-aarch64-wsl-checksum-signature"
+
+# Import the RPM signing public key into the local GPG keystore
+gpg --import RPM-GPG-KEY-azurelinux-4.0-primary
+
+# Verify that the checksum file was produced by the Azure Linux team
+# The output of this command should contain the following string:
+# 'Good signature from "Mariner RPM Release Signing "'
+gpg --verify "$SIGNATURE_FILE" "$CHECKSUM_FILE"
+
+# Verify that the .wsl package checksum matches the expected checksum
+# We need to fix the line endings on the checksum file to get sha256sum to accept it
+tr -d '\r' < "$CHECKSUM_FILE" | sha256sum --check -
+```
+
+## Verifying on Windows
+If you downloaded the package with a browser on Windows and do not have a WSL distribution available yet, PowerShell can perform the checksum comparison. Note that this only covers step 2 — verifying the signature on the checksum file still requires `gpg`.
+
+```powershell
+# Set this to the architecture you downloaded: 'x86_64' or 'aarch64'
+$Arch = "x86_64"
+
+$Package = "AzureLinux-4.0-$Arch.wsl"
+$ChecksumFile = "azurelinux-4.0-$Arch-wsl-checksum"
+
+# Download the published checksum for the .wsl package
+Invoke-WebRequest -Uri "https://aka.ms/$ChecksumFile" -OutFile $ChecksumFile
+
+# Compare the hash of the downloaded package against the published checksum
+$expected = ((Get-Content $ChecksumFile -Raw).Trim() -split '\s+')[0]
+$actual = (Get-FileHash -Algorithm SHA256 $Package).Hash
+if ($actual -eq $expected.ToUpper()) { "Checksum OK" } else { "CHECKSUM MISMATCH" }
+```