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.
Ha egy Docker-tárolóban futtatja a .NET-alkalmazást, és dev proxyt szeretne használni, több lépést is be kell tartania ahhoz, hogy működjön.
Proxy konfigurálása a Docker-tárolóhoz
Mivel a .NET-alkalmazás egy Docker-tárolóban fut, és a Dev Proxy a gazdagépen fut, konfigurálnia kell a proxyt, hogy a számítógép IP-címére mutasson (http://192.0.2.13 az alábbi példában). A .NET a HTTPS_PROXY környezeti változót használja a HTTP-ügyfél proxyjának konfigurálásához. A Docker-tároló változójának konfigurálásához használja a --env, -e következő lehetőséget a tároló indításakor:
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
Fontos
Ha a Dev Proxyt macOS rendszeren használja, csatolnia kell a 0.0.0.0 címhez, hogy elérhetővé tegye a Docker-tárolóból. A Dev Proxy IP-címének konfigurálásához indítsa el a következő paranccsal:
devproxy --ip-address 0.0.0.0
Fontos
Ha Dev Proxyt használ Linuxon, a címhez 0.0.0.0 kell csatolnia, hogy elérhető legyen a Docker-tárolóból. A Dev Proxy IP-címének konfigurálásához indítsa el a következő paranccsal:
devproxy --ip-address 0.0.0.0
SSL-tanúsítványok kezelése
A Dev Proxy saját SSL-tanúsítványával vizsgálja meg az alkalmazásból lehallgatott HTTPS-forgalmat. Amikor telepíti a dev proxyt a számítógépre, az létrehoz egy önaláírt SSL-tanúsítványt, és hozzáadja a megbízható tanúsítványok listájához. Ha azonban egy Docker-tárolóban futtatja az alkalmazást, a tároló nem fér hozzá a számítógépre telepített SSL-tanúsítványhoz. Kétféleképpen kezelheti az SSL-tanúsítványokat, ha a Dev Proxyt Docker-tárolókban futó .NET-alkalmazásokkal használja.
Fejlesztői proxytanúsítvány konfigurálása a Docker-tárolóban
Ha engedélyezni szeretné, hogy a Dev Proxy megvizsgálja a HTTPS-kérelmeket, konfigurálhatja a Dev Proxy SSL-tanúsítványát megbízhatóként a Docker-tárolóban.
Fontos
Mivel a Docker nem őriz meg módosításokat egy tárolón a bezárása után, ezeket a lépéseket minden alkalommal meg kell ismételnie, amikor elindítja a tárolót. Ennek elkerülése érdekében hozzon létre egy egyéni Docker-rendszerképet a következő lépésekkel.
Először exportálja a Dev Proxy tanúsítványt a PEM-be.
A Dev Proxy tanúsítvány windowsos PEM-be való exportálásához a következőre van szükség openssl: . Ez a példa feltételezi, hogy a openssl együtt használja a git-nel, de külön is telepítheti.
Módosítsa a Fejlesztői proxy és a Git telepítési könyvtárát, és futtassa a következő szkriptet a PowerShellben.
$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"
Amikor a rendszer kéri a jelszó megadását, nyomja le az Enter billentyűt anélkül, hogy bármit beírna.
# 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
Ezután másolja a tanúsítványt a Docker-tárolóba. A tanúsítvány másolásának legegyszerűbb módja, ha azt a projektmappába másolja, amelyet a tárolóhoz csatlakoztat.
Ezután a Docker-tárolóban bízzon meg a tanúsítványban. Ha a mcr.microsoft.com/dotnet/sdk képet használja, a következő parancsokat használhatja:
# 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
SSL-tanúsítvány érvényesítése figyelmen kívül hagyása a .NET-alkalmazásban
Az SSL-tanúsítványok docker-tárolókban futó .NET-alkalmazásokkal való használatának alternatív módja, ha a Dev Proxy-t használja, hogy figyelmen kívül hagyja az SSL-tanúsítványok érvényesítését az alkalmazásban. Ehhez a megközelítéshez módosítania kell az alkalmazáskódot.
Az alkalmazásban adja hozzá a következő kódot az SSL-tanúsítványok érvényesítésének figyelmen kívül hagyásához:
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
Figyelemfelhívás
Az alkalmazás éles környezetben való üzembe helyezése előtt mindenképpen távolítsa el ezt a kódot.