Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alkalmazáskódban hozzáférhet az Azure App Service-hez hozzáadott nyilvános vagy magántanúsítványokhoz. Az alkalmazáskód ügyfélként működhet, és hozzáférhet egy tanúsítványhitelesítést igénylő külső szolgáltatáshoz. Előfordulhat, hogy titkosítási feladatokat is el kell végeznie. Ez a cikk bemutatja, hogyan használhat nyilvános vagy magántanúsítványokat az alkalmazáskódban.
A tanúsítványok kódban való használatának ezen megközelítése az App Service Transport Layer Security (TLS) funkcióját használja, amely megköveteli, hogy az alkalmazás alapszintű vagy magasabb szintű legyen. Ha az alkalmazás az Ingyenes vagy a Megosztott szinten van, a tanúsítványfájlt belefoglalhatja az alkalmazás adattárába.
Ha engedélyezi, hogy az App Service kezelje a TLS/Secure Sockets Layer (SSL) tanúsítványokat, külön kezelheti a tanúsítványokat és az alkalmazáskódot, és megvédheti a bizalmas adatokat.
Előfeltételek
A cikk követéséhez lásd:
Az ujjlenyomat megkeresése
Az Azure Portal bal oldali ablaktábláján válassza az App Services><alkalmazásnevét>.
Az alkalmazás bal oldali ablaktábláján válassza a Tanúsítványok lehetőséget. Ezután válassza a Hozd magaddal a tanúsítványokat (.pfx) vagy a nyilvános kulcsú tanúsítványok (.cer) lehetőséget.
Keresse meg a használni kívánt tanúsítványt, és másolja ki az ujjlenyomatot.
A tanúsítvány akadálymentesítése
Ha hozzá szeretne férni egy tanúsítványhoz az alkalmazás kódjában, adja hozzá az ujjlenyomatát az WEBSITE_LOAD_CERTIFICATES
alkalmazásbeállításhoz. Futtassa a következő parancsot az Azure Cloud Shell-ban:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_LOAD_CERTIFICATES=<comma-separated-certificate-thumbprints>
Ha az összes tanúsítványt elérhetővé szeretné tenni, állítsa az értéket a következőre *
: .
Ha WEBSITE_LOAD_CERTIFICATES
be van állítva *
, az összes korábban hozzáadott tanúsítvány elérhető az alkalmazáskód számára. Ha később hozzáad egy tanúsítványt az alkalmazáshoz, indítsa újra az alkalmazást, hogy az új tanúsítvány elérhető legyen az alkalmazás számára. További információ: Tanúsítvány frissítése vagy megújítása.
Tanúsítványok betöltése Windows-alkalmazásokban
Az WEBSITE_LOAD_CERTIFICATES
alkalmazásbeállítás elérhetővé teszi a megadott tanúsítványokat a Windows-tanúsítványtárolóban található Windows-alapú alkalmazás számára az Aktuális felhasználó\Saját fájlban.
A C#-kódban a tanúsítvány ujjlenyomatával érheti el a tanúsítványt. Az alábbi kód betölt egy ujjlenyomattal rendelkező tanúsítványt E661583E8FABEF4C0BEF694CBC41C28FB81CD870
.
using System;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
string certThumbprint = "E661583E8FABEF4C0BEF694CBC41C28FB81CD870";
bool validOnly = false;
using (X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser))
{
certStore.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certCollection = certStore.Certificates.Find(
X509FindType.FindByThumbprint,
// Replace below with your certificate's thumbprint
certThumbprint,
validOnly);
// Get the first cert with the thumbprint
X509Certificate2 cert = certCollection.OfType<X509Certificate2>().FirstOrDefault();
if (cert is null)
throw new Exception($"Certificate with thumbprint {certThumbprint} was not found");
// Use certificate
Console.WriteLine(cert.FriendlyName);
// Consider to call Dispose() on the certificate after it's being used, available in .NET 4.6 and later
}
Java kódban a tanúsítványt az Windows-MY
áruházból a Subject Common Name mezőjével érheti el. További információ: Nyilvános kulcsú tanúsítvány. A következő kód bemutatja, hogyan tölthet be titkos kulcsú tanúsítványt:
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;
import java.security.KeyStore;
import java.security.cert.Certificate;
import java.security.PrivateKey;
...
KeyStore ks = KeyStore.getInstance("Windows-MY");
ks.load(null, null);
Certificate cert = ks.getCertificate("<subject-cn>");
PrivateKey privKey = (PrivateKey) ks.getKey("<subject-cn>", ("<password>").toCharArray());
// Use the certificate and key
...
Az olyan nyelvek esetében, amelyek nem támogatják vagy nem támogatják a Windows tanúsítványtárolót, olvassa el a Tanúsítvány betöltése fájlból című témakört.
Tanúsítvány betöltése fájlból
Ha manuálisan kell feltöltenie egy tanúsítványfájlt, jobb, ha például a Git helyett a File Transfer Protocol Secure (FTPS) használatával tölti fel a tanúsítványt. Bizalmas adatok, például magántanúsítványok forráskontrollon kívül tartása.
ASP.NET és ASP.NET Core-nak Windows rendszeren akkor is hozzá kell férnie a tanúsítványtárolóhoz, ha egy fájlból tölt be tanúsítványt. Ha tanúsítványfájlt szeretne betölteni egy Windows .NET-alkalmazásba, töltse be az aktuális felhasználói profilt a Következő paranccsal a Cloud Shellben:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_LOAD_USER_PROFILE=1
A tanúsítványok kódban való használatának ez a megközelítése az App Service TLS funkcióját használja, amely megköveteli, hogy az alkalmazás az Alapszintű vagy magasabb szinten legyen.
Az alábbi C#-példa betölt egy nyilvános tanúsítványt az alkalmazás relatív elérési útjáról:
using System;
using System.IO;
using System.Security.Cryptography.X509Certificates;
...
var bytes = File.ReadAllBytes("~/<relative-path-to-cert-file>");
var cert = new X509Certificate2(bytes);
// Use the loaded certificate
Ha tudni szeretné, hogyan tölthet be TLS/SSL-tanúsítványt egy fájlból Node.js, PHP, Python vagy Java nyelven, tekintse meg a megfelelő nyelv vagy webplatform dokumentációját.
Tanúsítványok betöltése Linux-/Windows-tárolókban
Az WEBSITE_LOAD_CERTIFICATES
alkalmazásbeállítás fájlként elérhetővé teszi a megadott tanúsítványokat a Windows vagy a Linux egyéni tárolói számára (beleértve a beépített Linux-tárolókat is). A fájlok a következő könyvtárakban találhatók:
Konténerplatform | Nyilvános tanúsítványok | Magántanúsítványok |
---|---|---|
Windows-tároló | C:\appservice\certificates\public |
C:\appservice\certificates\private |
Linux-tároló | /var/ssl/certs |
/var/ssl/private |
A tanúsítványfájl nevei a tanúsítvány ujjlenyomatai.
Megjegyzés:
Az App Service a következő környezeti változókként injektálja a tanúsítvány elérési útját a Windows-tárolókba: WEBSITE_PRIVATE_CERTS_PATH
, WEBSITE_INTERMEDIATE_CERTS_PATH
, WEBSITE_PUBLIC_CERTS_PATH
és WEBSITE_ROOT_CERTS_PATH
. Jobb, ha a tanúsítványok elérési útját környezeti változókkal hivatkozzuk a tanúsítvány elérési útjának kódba írása helyett, arra az esetre, ha a tanúsítvány elérési útjai a jövőben megváltoznak.
Emellett a Windows Server Core és a Windows Nano Server tárolók automatikusan betöltik a tanúsítványtárolóba a tanúsítványokat a következő helyen LocalMachine\My
: . A tanúsítványok betöltéséhez kövesse a Windows-alkalmazások tanúsítványainak betöltése című témakörben látható mintát. Windows Nano-alapú tárolók esetén használja a fájl elérési útját a tanúsítvány fájlból való betöltése című témakörben látható módon.
Az alábbi C#-kód bemutatja, hogyan tölthető be nyilvános tanúsítvány linuxos alkalmazásba.
using System;
using System.IO;
using System.Security.Cryptography.X509Certificates;
...
var bytes = File.ReadAllBytes("/var/ssl/certs/<thumbprint>.der");
var cert = new X509Certificate2(bytes);
// Use the loaded certificate
Az alábbi C#-kód bemutatja, hogyan tölthet be magántanúsítványokat Linux-alkalmazásokba.
using System;
using System.IO;
using System.Security.Cryptography.X509Certificates;
...
var bytes = File.ReadAllBytes("/var/ssl/private/<thumbprint>.p12");
var cert = new X509Certificate2(bytes);
// Use the loaded certificate
Ha tudni szeretné, hogyan tölthet be TLS/SSL-tanúsítványt egy fájlból Node.js, PHP, Python vagy Java nyelven, tekintse meg a megfelelő nyelv vagy webplatform dokumentációját.
Tanúsítvány frissítése vagy megújítása
Amikor megújít egy tanúsítványt, és hozzáadja az alkalmazáshoz, új ujjlenyomatot kap, amelyet szintén elérhetővé kell tenni. A működés módja a tanúsítvány típusától függ.
Ha manuálisan tölti fel a nyilvános vagy magántanúsítványt :
- Ha kifejezetten az
WEBSITE_LOAD_CERTIFICATES
ujjlenyomatokat listázta, adja hozzá az új ujjlenyomatot az alkalmazásbeállításhoz. - Ha
WEBSITE_LOAD_CERTIFICATES
be van állítva*
, indítsa újra az alkalmazást az új tanúsítvány elérhetőségéhez.
Ha megújít egy tanúsítványt az Azure Key Vaultban, például egy App Service-tanúsítvánnyal, a Key Vault napi szinkronizálása automatikusan elvégzi a szükséges frissítést, amikor az alkalmazás szinkronizálódik a megújított tanúsítvánnyal.
- Ha
WEBSITE_LOAD_CERTIFICATES
a megújított tanúsítvány régi ujjlenyomatát tartalmazza, a napi szinkronizálás automatikusan frissíti a régi ujjlenyomatot az új ujjlenyomatra. - Ha
WEBSITE_LOAD_CERTIFICATES
be van állítva*
, a napi szinkronizálás automatikusan elérhetővé teszi az új tanúsítványt.