Útmutató: Ideiglenes tanúsítványok létrehozása a fejlesztés során való használatra
Ha biztonságos szolgáltatást vagy ügyfelet fejleszt a Windows Communication Foundation (WCF) használatával, gyakran szükséges megadni egy X.509-tanúsítványt, amelyet hitelesítő adatként kell használni. A tanúsítvány általában a számítógép megbízható legfelső szintű hitelesítésszolgáltatói tárolójában található legfelső szintű hitelesítésszolgáltatóval rendelkező tanúsítványlánc része. A tanúsítványlánc lehetővé teszi olyan tanúsítványok hatókörének hatókörét, amelyekben általában a legfelső szintű szolgáltató a szervezettől vagy az üzleti egységtől származik. Ha ezt fejlesztési időben szeretné emulálni, két tanúsítványt hozhat létre a biztonsági követelményeknek való megfelelés érdekében. Az első egy önaláírt tanúsítvány, amely a megbízható legfelső szintű hitelesítésszolgáltatók tárolójában van elhelyezve, a második tanúsítvány pedig az elsőből jön létre, és vagy a helyi gép személyes tárolójában, vagy az aktuális felhasználó helye személyes tárolójában található. Ez a témakör végigvezeti a két tanúsítvány PowerShell New-SelfSignedCertificate parancsmaggal történő létrehozásának lépésein.
Fontos
A New-SelfSignedCertificate parancsmag által létrehozott tanúsítványok csak tesztelési célokra vannak megadva. Szolgáltatás vagy ügyfél üzembe helyezésekor mindenképpen használjon egy hitelesítésszolgáltató által biztosított megfelelő tanúsítványt. Ez lehet a szervezet Windows Server tanúsítványkiszolgálójáról vagy egy harmadik féltől származik.
Alapértelmezés szerint a New-SelfSignedCertificate parancsmag önaláírt tanúsítványokat hoz létre, és ezek a tanúsítványok nem biztonságosak. Az önaláírt tanúsítványok a megbízható legfelső szintű hitelesítésszolgáltatók tárolójában való elhelyezése lehetővé teszi egy olyan fejlesztési környezet létrehozását, amely jobban szimulálja az üzembe helyezési környezetet.
A tanúsítványok létrehozásáról és használatáról további információt a Tanúsítványok használata című témakörben talál. A tanúsítványok hitelesítő adatokként való használatáról további információt a Szolgáltatások és ügyfelek biztonságossá tétele című témakörben talál. A Microsoft Authenticode technológia használatával kapcsolatos oktatóanyagért tekintse meg az Authenticode áttekintéseit és oktatóanyagait.
Önaláírt főhatósági tanúsítvány létrehozása és a titkos kulcs exportálása
Az alábbi parancs létrehoz egy önaláírt tanúsítványt a "RootCA" tulajdonosnévvel az aktuális felhasználói személyes tárolóban.
$rootCert = New-SelfSignedCertificate -CertStoreLocation Cert:\CurrentUser\My -DnsName "RootCA" -TextExtension @("2.5.29.19={text}CA=true") -KeyUsage CertSign,CrlSign,DigitalSignature
A tanúsítványt egy PFX-fájlba kell exportálnunk, hogy egy későbbi lépésben oda importálhassuk, ahol szükség van rá. Ha titkos kulccsal exportál egy tanúsítványt, jelszóra van szükség a védelméhez. A jelszót egy SecureString
fájlba mentjük, és az Export-PfxCertificate parancsmaggal exportáljuk a tanúsítványt a társított titkos kulccsal egy PFX-fájlba. Az Export-Certificate parancsmaggal csak a nyilvános tanúsítványt mentjük egy CRT-fájlba.
[System.Security.SecureString]$rootCertPassword = ConvertTo-SecureString -String "password" -Force -AsPlainText
[String]$rootCertPath = Join-Path -Path 'cert:\CurrentUser\My\' -ChildPath "$($rootCert.Thumbprint)"
Export-PfxCertificate -Cert $rootCertPath -FilePath 'RootCA.pfx' -Password $rootCertPassword
Export-Certificate -Cert $rootCertPath -FilePath 'RootCA.crt'
Főhatósági tanúsítvány által aláírt új tanúsítvány létrehozása
Az alábbi parancs létrehoz egy "SignedByRootCA" tulajdonosnévvel aláírt RootCA
tanúsítványt a kiállító titkos kulcsával.
$testCert = New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "SignedByRootCA" -KeyExportPolicy Exportable -KeyLength 2048 -KeyUsage DigitalSignature,KeyEncipherment -Signer $rootCert
Hasonlóképpen, az aláírt tanúsítványt titkos kulccsal egy PFX-fájlba, és csak a nyilvános kulcsot egy CRT-fájlba mentjük.
[String]$testCertPath = Join-Path -Path 'cert:\LocalMachine\My\' -ChildPath "$($testCert.Thumbprint)"
Export-PfxCertificate -Cert $testCertPath -FilePath testcert.pfx -Password $rootCertPassword
Export-Certificate -Cert $testCertPath -FilePath testcert.crt
Tanúsítvány telepítése a megbízható legfelső szintű hitelesítésszolgáltatók tárolójában
Miután létrehozott egy önaláírt tanúsítványt, telepítheti azt a megbízható legfelső szintű hitelesítésszolgáltatók tárolójába. Az ezen a ponton a tanúsítvánnyal aláírt tanúsítványokat a számítógép megbízhatónak minősíti. Ezért törölje a tanúsítványt az áruházból, amint már nincs rá szüksége. Ha törli ezt a főhatósági tanúsítványt, a vele aláírt összes többi tanúsítvány jogosulatlanná válik. A főtanúsítványok egyszerűen egy olyan mechanizmus, amellyel szükség szerint hatókörbe lehet helyezni a tanúsítványcsoportokat. A társközi alkalmazásokban például általában nincs szükség legfelső szintű hitelesítésszolgáltatóra, mert egyszerűen megbízik egy személy identitásában a megadott tanúsítványával.
Önaláírt tanúsítvány telepítése a megbízható legfelső szintű hitelesítésszolgáltatókban
Nyissa meg a tanúsítvány beépülő modult. További információ : Tanúsítványok megtekintése az MMC beépülő modullal.
Nyissa meg a mappát a tanúsítvány tárolásához a helyi számítógép vagy az aktuális felhasználó számára.
Nyissa meg a Megbízható legfelső szintű hitelesítésszolgáltatók mappát.
Kattintson a jobb gombbal a Tanúsítványok mappára, és válassza az Összes feladat, majd az Importálás parancsot.
A RootCA.pfx áruházba való importálásához kövesse a képernyőn megjelenő varázsló utasításait.
Tanúsítványok használata WCF-vel
Az ideiglenes tanúsítványok beállítása után olyan WCF-megoldásokat fejleszthet, amelyek ügyfél-hitelesítő adattípusként határozzák meg a tanúsítványokat. Az alábbi XML-konfiguráció például az üzenetbiztonságot és a tanúsítványt adja meg ügyfél-hitelesítő adattípusként.
Tanúsítvány megadása ügyfél-hitelesítő adattípusként
A szolgáltatás konfigurációs fájljában az alábbi XML-fájl használatával állítsa be a biztonsági módot üzenetre, az ügyfél hitelesítő adatait pedig tanúsítványra.
<bindings> <wsHttpBinding> <binding name="CertificateForClient"> <security> <message clientCredentialType="Certificate" /> </security> </binding> </wsHttpBinding> </bindings>
Az ügyfél konfigurációs fájljában az alábbi XML-fájl használatával adja meg, hogy a tanúsítvány megtalálható-e a felhasználó tárolójában, és a "CohoWinery" érték Tulajdonosnév mezőjében található.
<behaviors> <endpointBehaviors> <behavior name="CertForClient"> <clientCredentials> <clientCertificate findValue="CohoWinery" x509FindType="FindBySubjectName" /> </clientCredentials> </behavior> </endpointBehaviors> </behaviors>
A tanúsítványok WCF-ben való használatáról további információt a Tanúsítványok használata című témakörben talál.
.NET-keretrendszer biztonság
A tanúsítványra a jobb gombbal kattintva, majd a Törlés gombra kattintva törölje a megbízható legfelső szintű hitelesítésszolgáltatók és személyes mappák ideiglenes legfelső szintű hitelesítésszolgáltatói tanúsítványait.