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.
ASP.NET Core menggunakan HTTPS secara default. HTTPS bergantung pada sertifikat untuk kepercayaan, identitas, dan enkripsi.
Dokumen ini menjelaskan cara menjalankan gambar kontainer bawaan dengan HTTPS.
Lihat Mengembangkan Aplikasi Inti ASP.NET dengan Docker melalui HTTPS untuk skenario pengembangan.
Sampel ini memerlukan Docker 17.06 atau yang lebih baru dari klien Docker.
Prasyarat
.NET Core 2.2 SDK atau yang lebih baru diperlukan untuk beberapa instruksi dalam dokumen ini.
Sertifikat
Sertifikat dari otoritas sertifikat diperlukan untuk hosting produksi untuk domain. Let's Encrypt adalah otoritas sertifikat yang menawarkan sertifikat gratis.
Dokumen ini menggunakan sertifikat pengembangan yang ditandatangani sendiri untuk menghosting gambar bawaan melalui localhost. Instruksinya mirip dengan menggunakan sertifikat produksi.
Untuk sertifikat produksi:
- Alat
dotnet dev-certsini tidak diperlukan. - Sertifikat tidak perlu disimpan di lokasi yang digunakan dalam instruksi. Simpan sertifikat di lokasi mana pun di luar direktori situs.
Instruksi yang terkandung dalam bagian berikut sertifikat pemasangan volume ke dalam kontainer menggunakan volumes properti di docker-compose.yml. Anda dapat menambahkan sertifikat ke dalam gambar kontainer dengan COPY perintah di Dockerfile, tetapi tidak disarankan. Menyalin sertifikat ke dalam gambar tidak disarankan karena alasan berikut:
- Hal ini menyulitkan penggunaan gambar yang sama untuk pengujian dengan sertifikat pengembang.
- Ini menyulitkan untuk menggunakan gambar yang sama untuk Hosting dengan sertifikat produksi.
- Ada risiko signifikan dari pengungkapan sertifikat.
Memulai kontainer dengan dukungan https menggunakan docker compose
Gunakan instruksi berikut untuk konfigurasi sistem operasi Anda.
Windows menggunakan kontainer Linux
Buat sertifikat dan konfigurasikan komputer lokal:
dotnet dev-certs https -ep "$env:USERPROFILE\.aspnet\https\aspnetapp.pfx" -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Perintah sebelumnya menggunakan .NET CLI:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Dalam perintah sebelumnya, ganti $CREDENTIAL_PLACEHOLDER$ dengan kata sandi.
Buat file docker-compose.debug.yml dengan konten berikut:
version: '3.4'
services:
webapp:
image: mcr.microsoft.com/dotnet/samples:aspnetapp
ports:
- 80
- 443
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
volumes:
- ~/.aspnet/https:/https:ro
Kata sandi yang ditentukan dalam file docker compose harus cocok dengan kata sandi yang digunakan untuk sertifikat.
Mulai kontainer dengan ASP.NET Core yang dikonfigurasi untuk HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
macOS atau Linux
Buat sertifikat dan konfigurasikan komputer lokal:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Di Linux, dotnet dev-certs https --trust memerlukan .NET 9 atau SDK yang lebih baru. Untuk Linux di .NET 8.0.401 atau SDK yang lebih lama, lihat dokumentasi distribusi Linux Anda untuk mempercayai sertifikat.
Dalam perintah sebelumnya, ganti $CREDENTIAL_PLACEHOLDER$ dengan kata sandi.
Buat file docker-compose.debug.yml dengan konten berikut:
version: '3.4'
services:
webapp:
image: mcr.microsoft.com/dotnet/samples:aspnetapp
ports:
- 80
- 443
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
volumes:
- ~/.aspnet/https:/https:ro
Kata sandi yang ditentukan dalam file docker compose harus cocok dengan kata sandi yang digunakan untuk sertifikat.
Mulai kontainer dengan ASP.NET Core yang dikonfigurasi untuk HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Windows yang menggunakan kontainer Windows
Buat sertifikat dan konfigurasikan komputer lokal:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Dalam perintah sebelumnya, ganti $CREDENTIAL_PLACEHOLDER$ dengan kata sandi.
Buat file docker-compose.debug.yml dengan konten berikut:
version: '3.4'
services:
webapp:
image: mcr.microsoft.com/dotnet/samples:aspnetapp
ports:
- 80
- 443
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
- ASPNETCORE_Kestrel__Certificates__Default__Path=C:\https\aspnetapp.pfx
volumes:
- ${USERPROFILE}\.aspnet\https:C:\https:ro
Kata sandi yang ditentukan dalam file docker compose harus cocok dengan kata sandi yang digunakan untuk sertifikat.
Mulai kontainer dengan ASP.NET Core yang dikonfigurasi untuk HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Lihat juga
ASP.NET Core menggunakan HTTPS secara default. HTTPS bergantung pada sertifikat untuk kepercayaan, identitas, dan enkripsi.
Dokumen ini menjelaskan cara menjalankan gambar kontainer bawaan dengan HTTPS.
Lihat Mengembangkan Aplikasi Inti ASP.NET dengan Docker melalui HTTPS untuk skenario pengembangan.
Sampel ini memerlukan Docker 17.06 atau yang lebih baru dari klien Docker.
Prasyarat
.NET Core 2.2 SDK atau yang lebih baru diperlukan untuk beberapa instruksi dalam dokumen ini.
Sertifikat
Sertifikat dari otoritas sertifikat diperlukan untuk hosting produksi untuk domain. Let's Encrypt adalah otoritas sertifikat yang menawarkan sertifikat gratis.
Dokumen ini menggunakan sertifikat pengembangan yang ditandatangani sendiri untuk menghosting gambar bawaan melalui localhost. Instruksinya mirip dengan menggunakan sertifikat produksi.
Untuk sertifikat produksi:
- Alat
dotnet dev-certsini tidak diperlukan. - Sertifikat tidak perlu disimpan di lokasi yang digunakan dalam instruksi. Simpan sertifikat di lokasi mana pun di luar direktori situs.
Instruksi yang terkandung dalam bagian berikut sertifikat pemasangan volume ke dalam kontainer menggunakan volumes properti di docker-compose.yml. Anda dapat menambahkan sertifikat ke dalam gambar kontainer dengan COPY perintah di Dockerfile, tetapi tidak disarankan. Menyalin sertifikat ke dalam gambar tidak disarankan karena alasan berikut:
- Hal ini menyulitkan penggunaan gambar yang sama untuk pengujian dengan sertifikat pengembang.
- Ini menyulitkan untuk menggunakan gambar yang sama untuk Hosting dengan sertifikat produksi.
- Ada risiko signifikan dari pengungkapan sertifikat.
Memulai kontainer dengan dukungan https menggunakan docker compose
Gunakan instruksi berikut untuk konfigurasi sistem operasi Anda.
Windows menggunakan kontainer Linux
Buat sertifikat dan konfigurasikan komputer lokal:
dotnet dev-certs https -ep "$env:USERPROFILE\.aspnet\https\aspnetapp.pfx" -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Perintah sebelumnya menggunakan .NET CLI:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Dalam perintah sebelumnya, ganti $CREDENTIAL_PLACEHOLDER$ dengan kata sandi.
Buat file docker-compose.debug.yml dengan konten berikut:
version: '3.4'
services:
webapp:
image: mcr.microsoft.com/dotnet/samples:aspnetapp
ports:
- 80
- 443
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
volumes:
- ~/.aspnet/https:/https:ro
Kata sandi yang ditentukan dalam file docker compose harus cocok dengan kata sandi yang digunakan untuk sertifikat. Dalam perintah sebelumnya, ganti -\0pw- dengan kata sandi.
Mulai kontainer dengan ASP.NET Core yang dikonfigurasi untuk HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
macOS atau Linux
Buat sertifikat dan konfigurasikan komputer lokal:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
dotnet dev-certs https --trust hanya didukung di macOS dan Windows. Anda perlu mempercayai sertifikat di Linux dengan cara yang didukung oleh distribusi Anda. Kemungkinan Anda perlu mempercayai sertifikat di browser Anda.
Dalam perintah sebelumnya, ganti $CREDENTIAL_PLACEHOLDER$ dengan kata sandi.
Buat file docker-compose.debug.yml dengan konten berikut:
version: '3.4'
services:
webapp:
image: mcr.microsoft.com/dotnet/samples:aspnetapp
ports:
- 80
- 443
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_Kestrel__Certificates__Default__Password=password
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
volumes:
- ~/.aspnet/https:/https:ro
Kata sandi yang ditentukan dalam file docker compose harus cocok dengan kata sandi yang digunakan untuk sertifikat.
Mulai kontainer dengan ASP.NET Core yang dikonfigurasi untuk HTTPS:
docker-compose -f "docker-compose.debug.yml" up -d
Windows yang menggunakan kontainer Windows
Buat sertifikat dan konfigurasikan komputer lokal:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p $CREDENTIAL_PLACEHOLDER$
dotnet dev-certs https --trust
Dalam perintah sebelumnya, ganti $CREDENTIAL_PLACEHOLDER$ dengan kata sandi.
Buat file docker-compose.debug.yml dengan konten berikut:
version: '3.4'
services:
webapp:
image: mcr.microsoft.com/dotnet/samples:aspnetapp
ports:
- 80
- 443
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_Kestrel__Certificates__Default__Password=-\0pw-
- ASPNETCORE_Kestrel__Certificates__Default__Path=C:\https\aspnetapp.pfx
volumes:
- ${USERPROFILE}\.aspnet\https:C:\https:ro
The password specified in the docker compose file must match the password used for the certificate. In the preceding commands, replace `-\0pw-` with a password.
Start the container with ASP.NET Core configured for HTTPS:
```console
docker-compose -f "docker-compose.debug.yml" up -d
Lihat juga
ASP.NET Core