Konfigurowanie certyfikatu szyfrowania i szyfrowanie wpisów tajnych w klastrach systemu Windows

W tym artykule przedstawiono sposób konfigurowania certyfikatu szyfrowania i używania go do szyfrowania wpisów tajnych w klastrach systemu Windows. W przypadku klastrów systemu Linux zobacz Konfigurowanie certyfikatu szyfrowania i szyfrowanie wpisów tajnych w klastrach systemu Linux.

Usługa Azure Key Vault jest używana w tym miejscu jako bezpieczna lokalizacja magazynu dla certyfikatów i jako sposób uzyskiwania certyfikatów zainstalowanych w klastrach usługi Service Fabric na platformie Azure. Jeśli nie wdrażasz na platformie Azure, nie musisz używać Key Vault do zarządzania wpisami tajnymi w aplikacjach usługi Service Fabric. Jednak używanie wpisów tajnych w aplikacji jest niezależne od platformy w chmurze, aby umożliwić wdrażanie aplikacji w klastrze hostowanym w dowolnym miejscu.

Uzyskiwanie certyfikatu szyfrowania danych

Certyfikat szyfrowania danych jest używany ściśle do szyfrowania i odszyfrowywania parametrów w Settings.xml usługi i zmiennych środowiskowych w ServiceManifest.xml usługi. Nie jest on używany do uwierzytelniania ani podpisywania tekstu szyfrowania. Certyfikat musi spełniać następujące wymagania:

  • Certyfikat musi zawierać klucz prywatny.

  • Certyfikat należy utworzyć na potrzeby wymiany kluczy, który można wyeksportować do pliku wymiany informacji osobistych (pfx).

  • Użycie klucza certyfikatu musi obejmować szyfrowanie danych (10) i nie powinno obejmować uwierzytelniania serwera ani uwierzytelniania klienta.

    Na przykład podczas tworzenia certyfikatu z podpisem własnym przy użyciu programu PowerShell flaga KeyUsage musi być ustawiona na DataEncipherment:

    New-SelfSignedCertificate -Type DocumentEncryptionCert -KeyUsage DataEncipherment -Subject mydataenciphermentcert -Provider 'Microsoft Enhanced Cryptographic Provider v1.0'
    

Instalowanie certyfikatu w klastrze

Ten certyfikat musi być zainstalowany w każdym węźle w klastrze. Zobacz, jak utworzyć klaster przy użyciu usługi Azure Resource Manager, aby uzyskać instrukcje dotyczące konfiguracji.

Szyfrowanie wpisów tajnych aplikacji

Następujące polecenie programu PowerShell służy do szyfrowania wpisu tajnego. To polecenie szyfruje tylko wartość; nie podpisuje tekstu szyfrowania. Musisz użyć tego samego certyfikatu szyfrowania zainstalowanego w klastrze, aby wygenerować tekst szyfrowania dla wartości wpisów tajnych:

Invoke-ServiceFabricEncryptText -CertStore -CertThumbprint "<thumbprint>" -Text "mysecret" -StoreLocation CurrentUser -StoreName My

Wynikowy ciąg zakodowany w formacie base-64 zawiera zarówno tajny tekst szyfrujący, jak i informacje o certyfikacie użytym do jego zaszyfrowania.

Następne kroki

Dowiedz się, jak określić zaszyfrowane wpisy tajne w aplikacji.