Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Rick Anderson tarafından
ASP.NET Core varsayılan olarak HTTPS kullanır.
Bu belge, HTTPS ile önceden oluşturulmuş kapsayıcı görüntülerinin .NET komut satırı arabirimi (CLI) kullanılarak nasıl çalıştırılacağını açıklar. Docker'ı Visual Studio ile geliştirme aşamasında çalıştırma yönergeleri için bkz. HTTPS üzerinden Docker ile ASP.NET Core Uygulamaları Geliştirme.
Bu örnek, Docker 17.06 veya sonraki bir Docker istemcisi sürümünü gerektirir.
Önkoşullar
Geçerli .NET SDK.
Sertifikalar
Bir etki alanı için üretim barındırma amacıyla sertifika yetkilisinden bir sertifika gereklidir. Let's Encrypt ücretsiz sertifikalar sunan bir sertifika yetkilisidir.
Bu belge, localhost üzerinden önceden oluşturulmuş görüntüleri barındırmak için kendinden imzalı geliştirme sertifikaları kullanır. Yönergeler, üretim sertifikalarını kullanmaya benzer.
dotnet dev-certs tarafından oluşturulan sertifika yalnızca localhost ile kullanım içindir ve Kubernetes gibi bir ortamda kullanılmamalıdır. Kubernetes kümesinde HTTPS'yi desteklemek için, podlar içinde TLS'yi ayarlamak üzere Kümede TLS Sertifikalarını Yönetme bölümünde sunulan araçları kullanın.
Geliştirme ve test için kendinden imzalı sertifikalar oluşturmak üzere dotnet dev-certs kullanın.
Üretim sertifikaları için:
-
dotnet dev-certsaraç gerekli değildir. - Sertifikaların yönergelerde kullanılan konumda depolanması gerekmez. Herhangi bir konum çalışmalıdır, ancak sertifikaların site dizininizde depolanması önerilmez.
Aşağıdaki bölümde yer alan yönergeler, Docker'ın -v komut satırı seçeneğini kullanarak sertifikaları kapsayıcılara birim olarak bağlar. Bir Dockerfile içindeki COPY komutuyla kapsayıcı görüntülerine sertifika ekleyebilirsiniz, ancak bu önerilmez. Aşağıdaki nedenlerden dolayı sertifikaların bir görüntüye kopyalanması önerilmez:
- Geliştirici sertifikalarıyla test etmek için aynı görüntüyü kullanmak zordur.
- Üretim sertifikalarıyla barındırma için aynı görüntüyü kullanmak zordur.
- Sertifikanın açığa çıkması önemli bir risktir.
HTTPS ile önceden oluşturulmuş kapsayıcı görüntülerini çalıştırma
İşletim sistemi yapılandırmanız için aşağıdaki yönergeleri kullanın.
Linux kapsayıcıları kullanan Windows
Bir sertifika oluşturun ve yerel makineyi yapılandırın:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
Önceki komutlarda <CREDENTIAL_PLACEHOLDER> yerine bir parola yazın.
Bir komut kabuğunda HTTPS için yapılandırılmış ASP.NET Core ile kapsayıcı görüntüsünü çalıştırın:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=443 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp
Önceki kodda <CREDENTIAL_PLACEHOLDER> öğesini parolayla değiştirin. Parola, sertifika için kullanılan parolayla eşleşmelidir.
PowerShell kullanırken, %USERPROFILE% yerine $env:USERPROFILE kullanın.
Bu durumda sertifika bir .pfx dosya olmalıdır. Örnek kapsayıcıda, parolayla veya parola olmadan .crt veya .key dosyasının kullanılması desteklenmez. Örneğin, bir .crt dosya belirtirken kapsayıcı 'Sunucu modundaki SSL, ilişkili özel anahtara sahip bir sertifika kullanmalıdır.' gibi hata iletileri döndürebilir.
WSL kullanırken, sertifikanın doğru yüklendiğinden emin olmak için bağlama yolunu doğrulayın.
Note
Kestrel/HTTP.sys uç nokta yapılandırması için bağlantı noktalarını ayarlayan HTTPS_PORTS yapılandırma anahtarı ile ASPNETCORE_HTTPS_PORTS ortam değişkenini, HTTPS yönlendirme ara yazılımı için bağlantı noktasını ayarlayan HTTPS_PORT yapılandırma anahtarı ve ASPNETCORE_HTTPS_PORT ortam değişkeniyle karıştırmayın.
macOS veya Linux
Sertifika oluşturun ve yerel makineyi yapılandırın:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
Linux'ta dotnet dev-certs https --trust .NET 9 veya üzeri SDK gerektirir. Linux üzerinde .NET 8.0.401 veya önceki SDK için, sertifikaya güvenmek üzere Linux dağıtımınızın belgelerine bakın.
Önceki komutlarda <CREDENTIAL_PLACEHOLDER> yerine bir parola yazın.
Kapsayıcı imajını HTTPS için yapılandırılmış ASP.NET Core ile çalıştırın:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=443 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp
Önceki kodda <CREDENTIAL_PLACEHOLDER> ifadesini parolayla değiştirin. Parola, sertifika için kullanılan parolayla eşleşmelidir.
Note
Kestrel/HTTP.sys uç nokta yapılandırması için bağlantı noktalarını ayarlayan HTTPS_PORTS yapılandırma anahtarı ile ASPNETCORE_HTTPS_PORTS ortam değişkenini, HTTPS yönlendirme ara yazılımı için bağlantı noktasını ayarlayan HTTPS_PORT yapılandırma anahtarı ve ASPNETCORE_HTTPS_PORT ortam değişkeniyle karıştırmayın.
Windows kapsayıcıları kullanan Windows
Sertifika oluşturma ve yerel makineyi yapılandırma:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
Önceki komutlarda, <CREDENTIAL_PLACEHOLDER> yerine bir parola yazın.
PowerShell kullanırken, %USERPROFILE% yerine $env:USERPROFILE kullanın.
HTTPS için yapılandırılmış ASP.NET Core ile kapsayıcı imajını çalıştırın:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORTS=443 -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=c:\https\aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ --user ContainerAdministrator mcr.microsoft.com/dotnet/samples:aspnetapp
NOT:<CREDENTIAL_PLACEHOLDER> sertifikaların Kestrel varsayılan parolası için bir yer tutucudur.
Parola, sertifika için kullanılan parolayla eşleşmelidir.
PowerShell kullanırken, %USERPROFILE% değerini $env:USERPROFILE ile değiştirin.
HTTPS üzerinden Docker ile ASP.NET Core Uygulamaları Geliştirme
Docker kapsayıcılarında HTTPS ile ASP.NET Core uygulamaları geliştirme hakkında bilgi ve örnekler için bkz. Docker ile HTTPS üzerinden ASP.NET Core Uygulamaları Geliştirme.
Ayrıca bkz.
ASP.NET Core varsayılan olarak HTTPS kullanır.
Bu belge, HTTPS ile önceden oluşturulmuş kapsayıcı görüntülerinin .NET komut satırı arabirimini (CLI) kullanarak nasıl çalıştırılacağını açıklar. Docker'ı Visual Studio ile geliştirme aşamasında nasıl çalıştıracağınıza ilişkin yönergeler için bkz. HTTPS üzerinden Docker ile ASP.NET Core Uygulamaları Geliştirme.
Bu örnek, Docker 17.06 veya daha yeni bir Docker istemcisi sürümü gerektirir.
Önkoşullar
Geçerli .NET SDK'sı.
Sertifikalar
Bir etki alanı için üretim barındırma amacıyla sertifika yetkilisinden bir sertifika gereklidir. Let's Encrypt ücretsiz sertifikalar sunan bir sertifika yetkilisidir.
Bu belge, önceden oluşturulmuş görüntüleri localhostüzerinden barındırmak için kendinden imzalı geliştirme sertifikalarını kullanır. Yönergeler, üretim sertifikalarını kullanmaya benzer.
dotnet dev-certs tarafından oluşturulan sertifika yalnızca localhost ile kullanım içindir ve Kubernetes gibi bir ortamda kullanılmamalıdır. Kubernetes kümesinde HTTPS'yi desteklemek için, podlar içinde TLS'yi ayarlamak üzere Kümede TLS Sertifikalarını Yönetme bölümünde sağlanan araçları kullanın.
Geliştirme ve test için kendinden imzalı sertifikalar oluşturmak üzere dotnet dev-certs kullanın.
Üretim sertifikaları için:
-
dotnet dev-certsaraç gerekli değildir. - Sertifikaların yönergelerde kullanılan konumda depolanması gerekmez. Herhangi bir konum çalışmalıdır, ancak sertifikaların site dizininizde depolanması önerilmez.
Aşağıdaki bölümde yer alan yönergeler, Docker'ın -v komut satırı seçeneğini kullanarak sertifikaları kapsayıcılara birim olarak bağlar.
Dockerfile içindeki bir COPY komutuyla kapsayıcı görüntülerine sertifika ekleyebilirsiniz, ancak önerilmez. Aşağıdaki nedenlerden dolayı sertifikaların bir görüntüye kopyalanması önerilmez:
- Geliştirici sertifikalarıyla test etmek için aynı görüntüyü kullanmak zordur.
- Üretim sertifikalarıyla barındırma için aynı görüntüyü kullanmak zordur.
- Sertifikanın açığa çıkması önemli bir risktir.
HTTPS ile önceden oluşturulmuş kapsayıcı görüntülerini çalıştırma
İşletim sistemi yapılandırmanız için aşağıdaki yönergeleri kullanın.
Linux kapsayıcıları kullanan Windows
Bir sertifika oluşturun ve yerel makineyi yapılandırın:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
Önceki komutlarda <CREDENTIAL_PLACEHOLDER> yerine bir parola yazın.
Bir komut kabuğunda HTTPS için yapılandırılmış ASP.NET Core ile kapsayıcı görüntüsünü çalıştırın:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+:443;http://+" -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp
Önceki kodda, <CREDENTIAL_PLACEHOLDER> ifadesini parolayla değiştirin. Parola, sertifika için kullanılan parolayla eşleşmelidir.
PowerShell kullanırken, %USERPROFILE% yerine $env:USERPROFILE kullanın.
Not: Bu durumda sertifika bir .pfx dosya olmalıdır.
.crt veya .key dosyasının parolayla veya parola olmadan örnek kapsayıcıda kullanılması desteklenmez. Örneğin, bir .crt dosya belirtirken kapsayıcı 'Sunucu modu SSL, ilişkili özel anahtara sahip bir sertifika kullanmalıdır.' gibi hata iletileri döndürebilir.
WSL kullanırken, sertifikanın doğru yüklendiğinden emin olmak için bağlama yolunu doğrulayın.
macOS veya Linux
Sertifika oluşturma ve yerel makineyi yapılandırma:
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
dotnet dev-certs https --trust yalnızca macOS ve Windows'ta desteklenir. Linux üzerindeki sertifikalara dağıtımınız tarafından desteklenen şekilde güvenmeniz gerekir. Tarayıcınızda sertifikaya güvenmeniz gerekebilir.
Önceki komutlarda <CREDENTIAL_PLACEHOLDER> yerine bir parola yazın.
ASP.NET Core HTTPS için yapılandırılmış şekilde kapsayıcı imajını çalıştırın:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+:443;http://+" -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ mcr.microsoft.com/dotnet/samples:aspnetapp
Önceki kodda <CREDENTIAL_PLACEHOLDER> yerine parolayı yazın. Parola, sertifika için kullanılan parolayla eşleşmelidir.
Windows kapsayıcıları kullanan Windows
Sertifika oluşturun ve yerel makineyi yapılandırın:
dotnet dev-certs https -ep %USERPROFILE%\.aspnet\https\aspnetapp.pfx -p <CREDENTIAL_PLACEHOLDER>
dotnet dev-certs https --trust
Önceki komutlarda <CREDENTIAL_PLACEHOLDER> yerine bir parola yazın.
PowerShell kullanırken, %USERPROFILE% yerine $env:USERPROFILE yazın.
HTTPS için yapılandırılmış ASP.NET Core ile kapsayıcı imajını çalıştırın:
docker pull mcr.microsoft.com/dotnet/samples:aspnetapp
docker run --rm -it -p 8000:80 -p 8001:443 -e ASPNETCORE_URLS="https://+:443;http://+" -e ASPNETCORE_Kestrel__Certificates__Default__Password="<CREDENTIAL_PLACEHOLDER>" -e ASPNETCORE_Kestrel__Certificates__Default__Path=c:\https\aspnetapp.pfx -v %USERPROFILE%\.aspnet\https:C:\https\ --user ContainerAdministrator mcr.microsoft.com/dotnet/samples:aspnetapp
NOT:<CREDENTIAL_PLACEHOLDER>Kestrel, sertifikaların varsayılan parolası için bir yer tutucudur.
Parola, sertifika için kullanılan parolayla eşleşmelidir.
PowerShell kullanırken, %USERPROFILE% yerine $env:USERPROFILE kullanın.
HTTPS üzerinden Docker ile ASP.NET Core Uygulamaları Geliştirme
Docker kapsayıcılarında HTTPS ile ASP.NET Core uygulamaları geliştirme hakkında bilgi ve örnekler için bkz. HTTPS üzerinden Docker ile ASP.NET Core Uygulamaları Geliştirme
Ayrıca bkz.
ASP.NET Core