Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Mulai 28 Juli 2025, perubahan pada Sertifikat Terkelola App Service (ASMC) akan memengaruhi bagaimana sertifikat dikeluarkan dan diperpanjang dalam skenario tertentu. Meskipun sebagian besar pelanggan tidak perlu mengambil tindakan, sebaiknya tinjau posting blog terperinci ASMC kami untuk informasi lebih lanjut.
Dalam kode aplikasi, Anda dapat mengakses sertifikat publik atau privat yang Anda tambahkan ke Azure App Service. Kode aplikasi Anda mungkin bertindak sebagai klien dan mengakses layanan eksternal yang memerlukan autentikasi sertifikat. Ini mungkin juga perlu melakukan tugas kriptografi. Artikel ini memperlihatkan cara menggunakan sertifikat publik atau privat dalam kode aplikasi Anda.
Pendekatan untuk menggunakan sertifikat dalam kode Anda menggunakan fungsionalitas Keamanan Lapisan Transportasi (TLS) di App Service, yang mengharuskan aplikasi Anda berada di tingkat Dasar atau lebih tinggi. Jika aplikasi Anda berada di tingkat Gratis atau Bersama, Anda dapat menyertakan file sertifikat di repositori aplikasi Anda.
Ketika Anda membiarkan App Service mengelola sertifikat TLS/Secure Sockets Layer (SSL), Anda dapat mempertahankan sertifikat dan kode aplikasi Anda secara terpisah dan melindungi data sensitif Anda.
Prasyarat
Untuk mengikuti artikel ini, lihat:
Temukan sidik jari
Di portal Microsoft Azure, di panel kiri, pilih App Services><app-name>.
Di panel kiri aplikasi Anda, pilih Sertifikat. Lalu pilih Bawa sertifikat Anda sendiri (.pfx) atau Sertifikat kunci publik (.cer).
Temukan sertifikat yang ingin Anda gunakan dan salin sidik jari.
Membuat sertifikat dapat diakses
Untuk mengakses sertifikat di kode aplikasi Anda, tambahkan thumbprint-nya ke WEBSITE_LOAD_CERTIFICATES pengaturan aplikasi. Jalankan perintah berikut di Azure Cloud Shell:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_LOAD_CERTIFICATES=<comma-separated-certificate-thumbprints>
Untuk membuat semua sertifikat Anda dapat diakses, atur nilai ke *.
Ketika WEBSITE_LOAD_CERTIFICATES diatur ke *, semua sertifikat yang ditambahkan sebelumnya dapat diakses oleh kode aplikasi. Jika Anda menambahkan sertifikat ke aplikasi nanti, hidupkan ulang aplikasi untuk membuat sertifikat baru dapat diakses oleh aplikasi Anda. Untuk informasi selengkapnya, lihat Memperbarui atau memperbarui sertifikat.
Memuat sertifikat di aplikasi Windows
Pengaturan WEBSITE_LOAD_CERTIFICATES aplikasi membuat sertifikat yang ditentukan dapat diakses oleh aplikasi yang dihosting Windows Anda di penyimpanan sertifikat Windows, di Pengguna Saat Ini\Saya.
Dalam kode C#, Anda mengakses sertifikat dengan menggunakan thumbprint sertifikat. Kode berikut memuat sertifikat dengan thumbprint 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
}
Dalam kode Java, Anda mengakses sertifikat dari penyimpanan Windows-MY dengan menggunakan bidang Nama Umum Subjek . Untuk informasi selengkapnya, lihat Sertifikat kunci publik. Kode berikut menunjukkan cara memuat sertifikat kunci privat:
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
...
Untuk bahasa yang tidak mendukung atau menawarkan dukungan yang tidak cukup untuk penyimpanan sertifikat Windows, lihat Memuat sertifikat dari file.
Memuat sertifikat dari file
Jika Anda perlu memuat file sertifikat yang Anda unggah secara manual, lebih baik mengunggah sertifikat dengan menggunakan File Transfer Protocol Secure (FTPS) alih-alih Git, misalnya. Jauhkan data sensitif seperti sertifikat privat di luar kontrol sumber.
ASP.NET dan ASP.NET Core di Windows harus mengakses penyimpanan sertifikat meskipun Anda memuat sertifikat dari file. Untuk memuat file sertifikat di aplikasi Windows .NET, muat profil pengguna saat ini dengan perintah berikut di Cloud Shell:
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_LOAD_USER_PROFILE=1
Pendekatan untuk menggunakan sertifikat dalam kode Anda menggunakan fungsionalitas TLS di App Service, yang mengharuskan aplikasi Anda berada di tingkat Dasar atau lebih tinggi.
Contoh C# berikut memuat sertifikat publik dari jalur relatif di aplikasi Anda:
using System;
using System.IO;
using System.Security.Cryptography.X509Certificates;
...
var cert = X509CertificateLoader.LoadCertificateFromFile("~/<relative-path-to-cert-file>");
// Use the loaded certificate
Untuk melihat cara memuat sertifikat TLS/SSL dari file di Node.js, PHP, Python, atau Java, lihat dokumentasi untuk masing-masing bahasa atau platform web.
Memuat sertifikat dalam kontainer Linux/Windows
Pengaturan WEBSITE_LOAD_CERTIFICATES aplikasi membuat sertifikat yang ditentukan dapat diakses oleh kontainer kustom Windows atau Linux Anda (termasuk kontainer Linux bawaan) sebagai file. File ditemukan di bawah direktori berikut:
| Platform kontainer | Sertifikat publik | Sertifikat privat |
|---|---|---|
| Kontainer Windows | C:\appservice\certificates\public |
C:\appservice\certificates\private |
| Kontainer Linux | /var/ssl/certs |
/var/ssl/private |
Nama file sertifikat adalah sidik jari sertifikat.
Nota
App Service menyuntikkan jalur sertifikat ke dalam kontainer Windows sebagai variabel lingkungan berikut: WEBSITE_PRIVATE_CERTS_PATH, , WEBSITE_INTERMEDIATE_CERTS_PATH, WEBSITE_PUBLIC_CERTS_PATHdan WEBSITE_ROOT_CERTS_PATH. Lebih baik mereferensikan jalur sertifikat dengan variabel lingkungan alih-alih melakukan hardcoding jalur sertifikat, jika jalur sertifikat berubah di masa mendatang.
Selain itu, kontainer Windows Server Core dan Windows Nano Server memuat sertifikat ke penyimpanan sertifikat secara otomatis, di LocalMachine\My. Untuk memuat sertifikat, ikuti pola yang sama seperti yang ditunjukkan di Muat sertifikat di aplikasi Windows. Untuk kontainer berbasis Windows Nano, gunakan jalur file seperti yang ditunjukkan dalam Memuat sertifikat dari file.
Kode C# berikut menunjukkan cara memuat sertifikat publik di aplikasi Linux.
using System;
using System.IO;
using System.Security.Cryptography.X509Certificates;
...
var cert = X509CertificateLoader.LoadCertificateFromFile("/var/ssl/certs/<thumbprint>.der");
// Use the loaded certificate
Kode C# berikut menunjukkan cara memuat sertifikat privat di aplikasi Linux.
using System;
using System.IO;
using System.Security.Cryptography.X509Certificates;
...
var cert = X509CertificateLoader.LoadCertificateFromFile("/var/ssl/private/<thumbprint>.p12");
// Use the loaded certificate
Untuk melihat cara memuat sertifikat TLS/SSL dari file di Node.js, PHP, Python, atau Java, lihat dokumentasi untuk masing-masing bahasa atau platform web.
Memperbarui atau memperpanjang sertifikat
Saat Anda memperbarui sertifikat dan menambahkannya ke aplikasi, sertifikat tersebut akan mendapatkan thumbprint baru, yang juga harus dibuat dapat diakses. Cara kerjanya tergantung pada jenis sertifikat Anda.
Jika Anda mengunggah sertifikat publik atau privat secara manual:
- Jika Anda mencantumkan thumbprint secara eksplisit di
WEBSITE_LOAD_CERTIFICATES, tambahkan thumbprint baru ke pengaturan aplikasi. - Jika
WEBSITE_LOAD_CERTIFICATESdiatur ke*, mulai ulang aplikasi untuk membuat sertifikat baru dapat diakses.
Jika Anda memperbarui sertifikat di Azure Key Vault, seperti dengan sertifikat App Service, sinkronisasi harian dari Key Vault membuat pembaruan yang diperlukan secara otomatis saat aplikasi Anda disinkronkan dengan sertifikat yang diperbarui.
- Jika
WEBSITE_LOAD_CERTIFICATESberisi thumbprint lama sertifikat yang diperbarui, sinkronisasi harian memperbarui thumbprint lama ke thumbprint baru secara otomatis. - Jika
WEBSITE_LOAD_CERTIFICATESdiatur ke*, sinkronisasi harian membuat sertifikat baru dapat diakses secara otomatis.