Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du kör .NET-programmet i en Docker-container och vill använda Dev Proxy finns det flera steg som du måste följa för att få det att fungera.
Konfigurera proxy för din Docker-container
Eftersom din .NET-app körs i en Docker-container och Dev Proxy körs på din värddator måste du konfigurera proxyn så att den pekar på din dators IP-adress (http://192.0.2.13 i följande exempel). .NET använder HTTPS_PROXY miljövariabeln för att konfigurera proxyn för sin HTTP-klient. Om du vill konfigurera variabeln för Docker-containern använder du --env, -e alternativet när du startar containern:
docker run --rm -it -v $(pwd):/usr/src/app -e HTTPS_PROXY=http://192.0.2.13:8000 mcr.microsoft.com/dotnet/sdk:8.0 bash
Viktigt!
När du använder Dev Proxy på macOS måste du koppla den till 0.0.0.0 adressen för att göra den tillgänglig från Docker-containern. Om du vill konfigurera IP-adressen för Dev Proxy startar du den med följande kommando:
devproxy --ip-address 0.0.0.0
Viktigt!
När du använder Dev Proxy i Linux måste du koppla den till 0.0.0.0 adressen för att göra den tillgänglig från Docker-containern. Om du vill konfigurera IP-adressen för Dev Proxy startar du den med följande kommando:
devproxy --ip-address 0.0.0.0
Hantera SSL-certifikat
Dev Proxy använder sitt eget SSL-certifikat för att inspektera HTTPS-trafik som fångas upp från ditt program. När du installerar Dev Proxy på datorn genereras ett självsignerat SSL-certifikat och läggs till i listan över betrodda certifikat. Men när du kör programmet i en Docker-container har containern inte åtkomst till SSL-certifikatet som är installerat på datorn. Det finns två sätt för dig att hantera SSL-certifikat när du använder Dev Proxy med .NET-program som körs i Docker-containrar.
Konfigurera Dev Proxy-certifikat i Docker-containern
Om du vill tillåta Dev Proxy att inspektera HTTPS-begäranden kan du konfigurera Dev Proxy SSL-certifikatet som betrott i Docker-containern.
Viktigt!
Eftersom Docker inte bevarar ändringar i en container när den har stängts måste du upprepa de här stegen varje gång du startar containern. Undvik detta genom att skapa en anpassad Docker-avbildning med följande steg.
Börja genom att exportera Dev Proxy-certifikatet till PEM.
Om du vill exportera Dev Proxy-certifikatet till PEM i Windows behöver openssldu . Det här exemplet förutsätter att du använder openssl det som tillhandahålls tillsammans med git , men du kan även installera det separat.
Justera installationskatalogen för Dev Proxy och git och kör följande skript i PowerShell.
$proxyPath = "C:\apps\devproxy"
$gitPath = "C:\Program Files\Git"
# convert Dev Proxy root certificate to PEM
$executable = "${gitPath}\usr\bin\openssl.exe"
$arguments = 'pkcs12 -in "{0}\rootCert.pfx" -out "{0}\rootCert.crt" -nodes' -f $proxyPath
Start-Process -FilePath $executable -ArgumentList $arguments -NoNewWindow -Wait
# Read PEM contents
$content = Get-Content "$proxyPath\rootCert.crt"
# Find the indices of the begin and end certificate lines
$beginIndex = $content.IndexOf("-----BEGIN CERTIFICATE-----")
$endIndex = $content.IndexOf("-----END CERTIFICATE-----")
# If both lines are found
if ($beginIndex -ne -1 -and $endIndex -ne -1) {
# Trim the content to only include the certificate
$content = $content[$beginIndex..$endIndex]
}
# Write the updated content back to the file
$content | Out-File "$proxyPath\dev-proxy-ca.crt"
När du uppmanas att ange lösenordet trycker du på Retur utan att skriva något.
# export Dev Proxy certificate
security find-certificate -c "Dev Proxy CA" -a -p > dev-proxy-ca.pem
# rename to .crt
mv dev-proxy-ca.pem dev-proxy-ca.crt
# export Dev Proxy certificate
openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:""
# rename to .crt
mv dev-proxy-ca.pem dev-proxy-ca.crt
Kopiera sedan certifikatet till Docker-containern. Det enklaste sättet att kopiera certifikatet är att kopiera det till projektmappen som du monterar i containern.
I Docker-containern litar du sedan på certifikatet. Om du använder avbildningen mcr.microsoft.com/dotnet/sdk kan du använda följande kommandon:
# change to the directory where your application is located
cd /usr/app/src
# copy the certificate to the trusted certificates directory
cp dev-proxy-ca.crt /usr/local/share/ca-certificates
# update the trusted certificates
update-ca-certificates
Ignorera SSL-certifikatverifiering i .NET-programmet
Ett annat sätt att hantera SSL-certifikat när du använder Dev Proxy med .NET-program som körs i Docker-containrar är att ignorera SSL-certifikatverifiering i ditt program. Den här metoden kräver att du ändrar programkoden.
I ditt program lägger du till följande kod för att ignorera SSL-certifikatverifiering:
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
Varning
Se till att ta bort den här koden innan du distribuerar programmet till produktion.