Megosztás a következőn keresztül:


Ú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

  1. 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.

  2. 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.

  3. Nyissa meg a Megbízható legfelső szintű hitelesítésszolgáltatók mappát.

  4. Kattintson a jobb gombbal a Tanúsítványok mappára, és válassza az Összes feladat, majd az Importálás parancsot.

  5. 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

  1. 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>
    
  2. 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.

Lásd még