Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce informazioni sulla configurazione dei certificati X.509 nei cluster Linux.
Percorso e formato dei certificati X.509 nei nodi Linux
Service Fabric prevede in genere che i certificati X.509 siano presenti nella directory /var/lib/sfcerts nei nodi del cluster Linux. Questo vale per i certificati cluster, i certificati client e così via. In alcuni casi, è possibile specificare un percorso diverso dalla cartella var/lib/sfcerts per i certificati. Ad esempio, con Reliable Services compilato con Service Fabric Java SDK, è possibile specificare un percorso diverso tramite il pacchetto di configurazione (Settings.xml) per alcuni certificati specifici dell'applicazione. Per altre informazioni, vedere Certificati a cui si fa riferimento nel pacchetto di configurazione (Settings.xml).
Per i cluster Linux, Service Fabric prevede che i certificati siano presenti come file con estensione pem che contiene sia il certificato che la chiave privata o come file con estensione crt che contiene il certificato e un file .key che contiene la chiave privata. Tutti i file devono essere in formato PEM.
Se si installa il certificato da Azure Key Vault usando un modello di Resource Manager o i comandi di PowerShell , il certificato viene installato nel formato corretto nella directory /var/lib/sfcerts in ogni nodo. Se si installa un certificato tramite un altro metodo, è necessario assicurarsi che il certificato sia installato correttamente nei nodi del cluster.
Certificati a cui si fa riferimento nel manifesto dell'applicazione
I certificati specificati nel manifesto dell'applicazione, ad esempio tramite gli elementi SecretsCertificate o EndpointCertificate , devono essere presenti nella directory /var/lib/sfcerts . Gli elementi usati per specificare i certificati nel manifesto dell'applicazione non accettano un attributo path, pertanto i certificati devono essere presenti nella directory predefinita. Questi elementi accettano un attributo X509StoreName facoltativo. Il valore predefinito è "My", che punta alla directory /var/lib/sfcerts nei nodi Linux. Qualsiasi altro valore non è definito in un cluster Linux. È consigliabile omettere l'attributo X509StoreName per le app eseguite nei cluster Linux.
Certificati a cui si fa riferimento nel pacchetto di configurazione (Settings.xml)
Per alcuni servizi, è possibile configurare i certificati X.509 in ConfigPackage (per impostazione predefinita, Settings.xml). Ad esempio, questo è il caso in cui si dichiarano i certificati usati per proteggere i canali RPC per i servizi Reliable Services compilati con Service Fabric .NET Core o Java SDK. Esistono due modi per fare riferimento ai certificati nel pacchetto di configurazione. Il supporto varia tra .NET Core e Java SDK.
Uso del tipo di credenziali di sicurezza X509
WIth gli SDK .NET o Java, è possibile specificare X509 per SecurityCredentialsType. Corrisponde al tipo di X509Credentials (.NET/Java) del SecurityCredentials (.NET/Java).
Il riferimento X509 individua il certificato in un archivio certificati. Il codice XML seguente mostra i parametri usati per specificare il percorso del certificato:
<Parameter Name="SecurityCredentialsType" Value="X509" />
<Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
<Parameter Name="CertificateStoreName" Value="My" />
Per un servizio in esecuzione in Linux, LocalMachine/My punta al percorso predefinito per i certificati, la directory /var/lib/sfcerts . Per Linux, tutte le altre combinazioni di CertificateStoreLocation e CertificateStoreName non sono predefinite.
Specificare sempre LocalMachine per il parametro CertificateStoreLocation . Non è necessario specificare il parametro CertificateStoreName perché per impostazione predefinita è "My". Con un riferimento X509 , i file di certificato devono trovarsi nella directory /var/lib/sfcerts nel nodo del cluster.
Il codice XML seguente mostra una sezione TransportSettings basata su questo stile:
<Section Name="HelloWorldStatefulTransportSettings">
<Parameter Name="MaxMessageSize" Value="10000000" />
<Parameter Name="SecurityCredentialsType" Value="X509" />
<Parameter Name="CertificateFindType" Value="FindByThumbprint" />
<Parameter Name="CertificateFindValue" Value="AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00" />
<Parameter Name="CertificateRemoteThumbprints" Value="BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11" />
<Parameter Name="CertificateStoreLocation" Value="LocalMachine" />
<Parameter Name="CertificateProtectionLevel" Value="EncryptAndSign" />
<Parameter Name="CertificateRemoteCommonNames" Value="ServiceFabric-Test-Cert" />
</Section>
Uso di X509_2 per SecurityCredentialsType
Con Java SDK è possibile specificare X509_2 per SecurityCredentialsType. Corrisponde al X509Credentials2 tipo (Java) di SecurityCredentials (Java).
Con un riferimento X509_2 , si specifica un parametro di percorso, in modo da poter individuare il certificato in una directory diversa da /var/lib/sfcerts. Il codice XML seguente mostra i parametri usati per specificare il percorso del certificato:
<Parameter Name="SecurityCredentialsType" Value="X509_2" />
<Parameter Name="CertificatePath" Value="/path/to/cert/CC33DD44EE55FF66AA77BB88CC99DD00EE11FF22.crt" />
Il codice XML seguente mostra una sezione TransportSettings basata su questo stile.
<!--Section name should always end with "TransportSettings".-->
<!--Here we are using a prefix "HelloWorldStateless".-->
<Section Name="HelloWorldStatelessTransportSettings">
<Parameter Name="MaxMessageSize" Value="10000000" />
<Parameter Name="SecurityCredentialsType" Value="X509_2" />
<Parameter Name="CertificatePath" Value="/path/to/cert/CC33DD44EE55FF66AA77BB88CC99DD00EE11FF22.crt" />
<Parameter Name="CertificateProtectionLevel" Value="EncryptandSign" />
<Parameter Name="CertificateRemoteThumbprints" Value="CC33DD44EE55FF66AA77BB88CC99DD00EE11FF22" />
</Section>
Annotazioni
Il certificato viene specificato come file con estensione crt nel codice XML precedente. Ciò implica che esiste anche un file .key contenente la chiave privata nella stessa posizione.
Configurare un'app Reliable Services per l'esecuzione in cluster Linux
Gli SDK di Service Fabric consentono di comunicare con le API di runtime di Service Fabric per sfruttare la piattaforma. Quando si esegue un'applicazione che usa questa funzionalità in cluster Linux sicuri, è necessario configurare l'applicazione con un certificato che può essere usato per la convalida con il runtime di Service Fabric. Le applicazioni che contengono servizi Reliable Service di Service Fabric scritti con .NET Core o Java SDK richiedono questa configurazione.
Per configurare un'applicazione, aggiungere un elemento SecretsCertificate sotto il tag Certificates , che si trova sotto il tag ApplicationManifest nel file ApplicationManifest.xml . Il codice XML seguente mostra un certificato a cui si fa riferimento tramite l'impronta digitale.
<Certificates>
<SecretsCertificate X509FindType="FindByThumbprint" X509FindValue="0A00AA0AAAA0AAA00A000000A0AA00A0AAAA00" />
</Certificates>
È possibile fare riferimento al certificato del cluster o a un certificato installato in ogni nodo del cluster. In Linux i file di certificato devono essere presenti nella directory /var/lib/sfcerts . Per altre informazioni, vedere Posizione e formato dei certificati X.509 nei nodi Linux.