A lightweight ASP.NET Core web application that provides a human-readable inventory of TLS/SSL certificates in your Azure App Service Windows environment.
- Lists public certificates from Windows certificate stores (CA and Root)
- Lists private/personal certificates from Windows certificate stores (My and WebHosting)
- Displays certificate metadata including:
- Subject and issuer information
- Validity dates and expiration status
- Serial numbers and thumbprints
- Private key availability
- Shows environment variables related to certificates
- Clean, responsive Bootstrap UI
- An Azure App Service (Windows) with .NET 8 runtime
- GitHub account to host the repository
- Access to GitHub Actions or Azure DevOps pipelines
- Fork or clone this repository to your GitHub account
- In your GitHub repository settings, add these secrets:
AZURE_WEBAPP_NAME: Your App Service nameAZURE_WEBAPP_PUBLISH_PROFILE: Your publish profile XML content (download from Azure Portal)
- Push to the main branch, and GitHub Actions will deploy to your Azure App Service
- Clone this repository to your local machine
- In the Azure Portal, navigate to your App Service
- Go to Deployment Center
- Choose your preferred deployment method (Local Git, GitHub, etc.)
- Follow the prompts to connect your repository
- Deploy the code to your App Service
- Open the solution in Visual Studio
- Right-click on the project in Solution Explorer
- Select "Publish..."
- Follow the wizard to publish to your Azure App Service
Ensure your App Service has these configurations:
- Platform: Windows
- Runtime Stack: .NET 8 (LTS)
- Application Settings:
WEBSITE_LOAD_CERTIFICATES: Set to*to load all certificates or specific thumbprints separated by commas
To monitor and manage deployments through the Azure Portal:
- Navigate to your App Service in the Azure Portal
- Select "Deployment Center" from the left navigation menu
- If using GitHub Actions, you'll see your deployments listed here
- Select a deployment to view logs and status details
- Use "Deployment Logs" to troubleshoot any deployment issues
For the application to access certificates:
- The application needs read access to Windows certificate stores
- Ensure
WEBSITE_LOAD_CERTIFICATESis set to*to load all certificates or specific thumbprints to load individual certificates - If managed certificates are used, these are automatically available in the appropriate stores
Unlike Linux App Services where certificates are stored as files, Windows App Services store certificates in the Windows Certificate Store:
- Public certificates (CA, root certificates) are stored in the
LocalMachine\CertificateAuthorityandLocalMachine\Rootstores - Private certificates (with private keys) are stored in the
LocalMachine\Mystore - App Service specific certificates may also be in the
LocalMachine\WebHostingstore
# Clone repository
git clone https://github.com/yourusername/azure-cert-inventory-dotnet.git
cd azure-cert-inventory-dotnet
# Build and run
dotnet build
dotnet runThe application will be available at https://localhost:5001 or http://localhost:5000.
- .NET 8 SDK
- Visual Studio 2022 or Visual Studio Code (optional)
Contributions are welcome! Please feel free to submit a Pull Request.
