Certificaten instellen voor Azure CLI in Azure Stack Hub of Azure Stack Development Kit
Volg de stappen in dit artikel om de Azure Command-Line Interface (CLI) in te stellen voor het beheren van AZURE Stack Development Kit-resources (ASDK) van Linux-, Mac- en Windows-clientplatforms. U kunt deze stappen ook volgen als u een geïntegreerd systeem van Azure Stack Hub gebruikt in een niet-verbonden omgeving of als uw certificaten niet zijn uitgegeven door een CA in het vertrouwde basisprogramma.
In dit artikel wordt uitgelegd hoe u uw certificaten ophaalt en vertrouwt op uw externe beheercomputer. Zie Azure CLI installeren in Azure Stack Hub om de Azure CLI te installeren en verbinding te maken met uw omgeving.
Voorbereiden op Azure CLI
U hebt het CA-basiscertificaat voor Azure Stack Hub nodig om Azure CLI te gebruiken op uw ontwikkelcomputer. U gebruikt het certificaat om resources te beheren via de CLI.
Het CA-basiscertificaat van Azure Stack Hub is vereist als u de CLI gebruikt vanaf een werkstation buiten de Azure Stack Hub-omgeving.
Het eindpunt voor aliassen van virtuele machines biedt een alias, zoals UbuntuLTS of Win2012Datacenter. Deze alias verwijst naar een installatiekopieënuitgever, aanbieding, SKU en versie als één parameter bij het implementeren van VM's.
In de volgende secties wordt beschreven hoe u deze waarden kunt ophalen.
Het CA-basiscertificaat van Azure Stack Hub exporteren
Exporteer het CA-basiscertificaat. Het ASDK-basiscertificaat exporteren in PEM-indeling:
Haal de naam van uw Azure Stack Hub-basiscertificaat op:
- Meld u aan bij de Azure Stack Hub-gebruiker of azure Stack Hub-beheerdersportal.
- Selecteer de vergrendeling in de adresbalk van de browser.
- Selecteer Verbinding is beveiligd in het pop-upvenster.
- Selecteer in het venster Certificaat het tabblad Certificeringspad .
- Noteer bijvoorbeeld de naam van uw Azure Stack Hub-basiscertificaat
*.<locale>.<FQDN>

Meld u aan bij de VM, open een PowerShell-prompt met verhoogde bevoegdheid en voer vervolgens het volgende script uit:
$label = "*.<locale>.<FQDN> from step 1" Write-Host "Getting certificate from the current user trusted store with subject CN=$label" $root = Get-ChildItem Cert:\CurrentUser\Root | Where-Object Subject -eq "CN=$label" | select -First 1 if (-not $root) { Write-Error "Certificate with subject CN=$label not found" return } Write-Host "Exporting certificate" Export-Certificate -Type CERT -FilePath root.cer -Cert $root Write-Host "Converting certificate to PEM format" certutil -encode root.cer root.pemKopieer het certificaat naar uw lokale computer.
Het aliaseindpunt van de virtuele machine instellen
U kunt een openbaar toegankelijk eindpunt instellen dat als host fungeert voor een VM-aliasbestand. Het VM-aliasbestand is een JSON-bestand dat een algemene naam biedt voor een installatiekopieën. U gebruikt de naam wanneer u een VIRTUELE machine implementeert als een Azure CLI-parameter.
Als u een aangepaste installatiekopieën publiceert, noteert u de uitgever, aanbieding, SKU en versiegegevens die u tijdens het publiceren hebt opgegeven. Als het een installatiekopieën van de marketplace is, kunt u de informatie bekijken met behulp van de
Get-AzureVMImagecmdlet.Download het voorbeeldbestand van GitHub.
Maak een opslagaccount in Azure Stack Hub. Wanneer dat is gebeurd, maakt u een blobcontainer. Stel het toegangsbeleid in op 'openbaar'.
Upload het JSON-bestand naar de nieuwe container. Wanneer dat is gebeurd, kunt u de URL van de blob bekijken. Selecteer de naam van de blob en selecteer vervolgens de URL in de blobeigenschappen.
Het certificaat vertrouwen
Als u Azure CLI wilt gebruiken met de ASDK, moet u het CA-basiscertificaat vertrouwen op uw externe computer.
Zoek de locatie van het certificaat op de computer. De locatie kan variëren, afhankelijk van waar u Python hebt geïnstalleerd.
Als u de locatie wilt vinden, opent u een CMD-prompt of een PowerShell-prompt met verhoogde bevoegdheid en typt u:
az --version. De versie- en Python-locatie worden weergegeven in de prompt.azure-cli 2.30.0 core 2.30.0 telemetry 1.0.6 Python location 'C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\python.exe' Extensions directory 'C:\Users\username\.azure\cliextensions' Python (Windows) 3.8.9 (tags/v3.8.9:a743f81, Apr 6 2021, 13:22:56) [MSC v.1928 32 bit (Intel)] Legal docs and information: aka.ms/AzureCliLegal Your CLI is up-to-date. Please let us know how we are doing: https://aka.ms/azureclihats and let us know if you're interested in trying out our newest features: https://aka.ms/CLIUXstudyGa naar de map waarin Azure CLI de Python heeft geïnstalleerd. Gebruik bijvoorbeeld de locatie in stap 2.
cd "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\Typ de volgende opdracht:
.\python -c "import certifi; print(certifi.where())"Hiermee wordt het pad van de certificaatlocatie op uw computer geretourneerd. Uw specifieke pad is afhankelijk van uw besturingssysteem en de versie van Python die u hebt geïnstalleerd. Bijvoorbeeld:
C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\lib\site-packages\certifi\cacert.pemNoteer de certificaatlocatie. U gebruikt het pad in de volgende stap.
Vertrouw het CA-basiscertificaat van Azure Stack Hub door het toe te voegen aan het bestaande Python-certificaat.
$pemFile = "<Fully qualified path to the PEM certificate exported from ` your Azure Stack Hub and saved. For example: C:\Users\user1\Downloads\root.pem." $pythonCertStore = <result from step 4> $root = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 $root.Import($pemFile) Write-Host "Extracting required information from the cert file" $md5Hash = (Get-FileHash -Path $pemFile -Algorithm MD5).Hash.ToLower() $sha1Hash = (Get-FileHash -Path $pemFile -Algorithm SHA1).Hash.ToLower() $sha256Hash = (Get-FileHash -Path $pemFile -Algorithm SHA256).Hash.ToLower() $issuerEntry = [string]::Format("# Issuer: {0}", $root.Issuer) $subjectEntry = [string]::Format("# Subject: {0}", $root.Subject) $labelEntry = [string]::Format("# Label: {0}", $root.Subject.Split('=')[-1]) $serialEntry = [string]::Format("# Serial: {0}", $root.GetSerialNumberString().ToLower()) $md5Entry = [string]::Format("# MD5 Fingerprint: {0}", $md5Hash) $sha1Entry = [string]::Format("# SHA1 Fingerprint: {0}", $sha1Hash) $sha256Entry = [string]::Format("# SHA256 Fingerprint: {0}", $sha256Hash) $certText = (Get-Content -Path $pemFile -Raw).ToString().Replace("`r`n","`n") $rootCertEntry = "`n" + $issuerEntry + "`n" + $subjectEntry + "`n" + $labelEntry + "`n" + ` $serialEntry + "`n" + $md5Entry + "`n" + $sha1Entry + "`n" + $sha256Entry + "`n" + $certText Write-Host "Adding the certificate content to Python Cert store" Add-Content $pythonCertStore $rootCertEntry Write-Host "Python Cert store was updated to allow the Azure Stack Hub CA root certificate"
Zie Azure CLI installeren in Azure Stack Hub voor instructies over het installeren en verbinden met Azure CLI.