Esportare i certificati dell'emulatore di Azure Cosmos DB per l'uso con Java, Python e Node.jsExport the Azure Cosmos DB Emulator certificates for use with Java, Python, and Node.js

Scaricare l'emulatoreDownload the Emulator

L'emulatore di Azure Cosmos DB fornisce un ambiente locale che emula il servizio Azure Cosmos DB per obiettivi di sviluppo, incluso l'uso di connessioni SSL.The Azure Cosmos DB Emulator provides a local environment that emulates the Azure Cosmos DB service for development purposes including its use of SSL connections. Questo post illustra come esportare i certificati SSL da usare in linguaggi e runtime non integrati con l'archivio certificati Windows, ad esempio Java che usa il proprio archivio certificati, Python che usa wrapper per socket e Node.js che usa tlsSocket.This post demonstrates how to export the SSL certificates for use in languages and runtimes that do not integrate with the Windows Certificate Store such as Java which uses its own certificate store and Python which uses socket wrappers and Node.js which uses tlsSocket. Per altre informazioni sull'emulatore, vedere Usare l'emulatore di Azure Cosmos DB per sviluppo e test.You can read more about the emulator in Use the Azure Cosmos DB Emulator for development and testing.

Questa esercitazione illustra le attività seguenti:This tutorial covers the following tasks:

  • Rotazione dei certificatiRotating certificates
  • Esportazione di un certificato SSLExporting SSL certificate
  • Come usare il certificato in Java, Python e Node.jsLearning how to use the certificate in Java, Python, and Node.js

Rotazione della certificazioneCertification rotation

I certificati nell'emulatore locale di Azure Cosmos DB vengono generati la prima volta che l'emulatore viene eseguito.Certificates in the Azure Cosmos DB Local Emulator are generated the first time the emulator is run. Esistono due certificati,There are two certificates. uno usato per la connessione all'emulatore locale e l'altro per la gestione dei segreti nell'emulatore.One used for connecting to the local emulator and one for managing secrets within the emulator. Il certificato che si vuole esportare è il certificato per la connessione con il nome descrittivo "DocumentDBEmulatorCertificate".The certificate you want to export is the connection certificate with the friendly name "DocumentDBEmulatorCertificate".

Entrambi i certificati possono essere rigenerati facendo clic su Reset Data (Reimposta dati), come illustrato di seguito, dall'emulatore di Azure Cosmos DB in esecuzione nell'area di notifica di Windows.Both certificates can be regenerated by clicking Reset Data as shown below from Azure Cosmos DB Emulator running in the Windows Tray. Se si rigenerano i certificati e questi sono stati installati nell'archivio certificati di Java o usati altrove, sarà necessario aggiornarli. In caso contrario l'applicazione non si connetterà più all'emulatore locale.If you regenerate the certificates and have installed them into the Java certificate store or used them elsewhere you will need to update them, otherwise your application will no longer connect to the local emulator.

Reimpostazione dei dati nell'emulatore locale di Azure Cosmos DB

Come esportare il certificato SSL dell'emulatore di Azure Cosmos DBHow to export the Azure Cosmos DB SSL certificate

  1. Avviare Gestione certificati di Windows eseguendo certlm.msc, passare alla cartella Personale->Certificati e aprire il certificato con il nome descrittivo DocumentDbEmulatorCertificate.Start the Windows Certificate manager by running certlm.msc and navigate to the Personal->Certificates folder and open the certificate with the friendly name DocumentDbEmulatorCertificate.

    Passaggio 1 dell'esportazione nell'emulatore locale di Azure Cosmos DB

  2. Fare clic su Details (Dettagli) quindi su OK.Click on Details then OK.

    Passaggio 2 dell'esportazione nell'emulatore locale di Azure Cosmos DB

  3. Fare clic su Copy to File... (Copia in file).Click Copy to File....

    Passaggio 3 dell'esportazione nell'emulatore locale di Azure Cosmos DB

  4. Fare clic su Avanti.Click Next.

    Passaggio 4 dell'esportazione nell'emulatore locale di Azure Cosmos DB

  5. Fare clic su No, do not export private key (No, non esportare la chiave privata) e quindi su Next (Avanti).Click No, do not export private key, then click Next.

    Passaggio 5 dell'esportazione nell'emulatore locale di Azure Cosmos DB

  6. Fare clic su Base-64 encoded X.509 (.CER) (Codificato in base 64 X.509 (.CER)) e quindi su Next (Avanti).Click on Base-64 encoded X.509 (.CER) and then Next.

    Passaggio 6 dell'esportazione nell'emulatore locale di Azure Cosmos DB

  7. Assegnare un nome al certificato.Give the certificate a name. In questo caso, documentdbemulatorcert, quindi fare clic su Next (Avanti).In this case documentdbemulatorcert and then click Next.

    Passaggio 7 dell'esportazione nell'emulatore locale di Azure Cosmos DB

  8. Fare clic su Finish (Fine).Click Finish.

    Passaggio 8 dell'esportazione nell'emulatore locale di Azure Cosmos DB

Come usare il certificato in JavaHow to use the certificate in Java

Quando si eseguono applicazioni Java o applicazioni MongoDB che usano il client Java, è più facile installare il certificato nell'archivio certificati predefinito di Java che passare i flag "-Djavax.net.ssl.trustStore= -Djavax.net.ssl.trustStorePassword="".When running Java applications or MongoDB applications that use the Java client it is easier to install the certificate into the Java default certificate store than passing the "-Djavax.net.ssl.trustStore= -Djavax.net.ssl.trustStorePassword="" flags. Ad esempio, l'applicazione demo Java inclusa dipende dall'archivio certificati predefinito.For example the included Java Demo application depends on the default certificate store.

Seguire le istruzioni indicate in Aggiunta di un certificato all'archivio certificati CA Java per importare il certificato X.509 nell'archivio certificati Java predefinito.Follow the instructions in the Adding a Certificate to the Java CA Certificates Store to import the X.509 certificate into the default Java certificate store. Tenere presente che si usa la directory %JAVA_HOME% quando si esegue keytool.Keep in mind you will be working in the %JAVA_HOME% directory when running keytool.

Dopo l'installazione del certificato SSL "CosmosDBEmulatorCertificate", l'applicazione potrà connettersi e usare l'emulatore di Azure Cosmos DB locale.Once the "CosmosDBEmulatorCertificate" SSL certificate is installed your application should be able to connect and use the local Azure Cosmos DB Emulator. Se i problemi persistono, vedere l'articolo Debug delle connessioni SSL/TLS.If you continue to have trouble you may want to follow the Debugging SSL/TLS Connections article. Molto probabilmente il certificato non è installato nell'archivio %JAVA_HOME%/jre/lib/security/cacerts.It is very likely the certificate is not installed into the %JAVA_HOME%/jre/lib/security/cacerts store. Se, ad esempio, sono installate più versioni di Java, è possibile che l'applicazione stia usando un archivio cacerts diverso da quello aggiornato.For example if you have multiple installed versions of Java your application may be using a different cacerts store than the one you updated.

Come usare il certificato in PythonHow to use the certificate in Python

Per impostazione predefinita, Python SDK (2.0.0 o versione successiva) per l'API di DocumentDB non prova a usare il certificato SSL quando si connette all'emulatore locale.By default the Python SDK(version 2.0.0 or higher) for the DocumentDB API will not try and use the SSL certificate when connecting to the local emulator. Se tuttavia si vuole usare la convalida SSL, è possibile seguire gli esempi della documentazione sui wrapper per socket di Python.If however you want to use SSL validation you can follow the examples in the Python socket wrappers documentation.

Come usare il certificato in Node.jsHow to use the certificate in Node.js

Per impostazione predefinita, Node.js SDK (1.10.1 o versione successiva) per l'API di DocumentDB non prova a usare il certificato SSL quando si connette all'emulatore locale.By default the Node.js SDK(version 1.10.1 or higher) for the DocumentDB API will not try and use the SSL certificate when connecting to the local emulator. Se tuttavia si vuole usare la convalida SSL, è possibile seguire gli esempi nella documentazione di Node.js.If however you want to use SSL validation you can follow the examples in the Node.js documentation.

Passaggi successiviNext steps

In questa esercitazione sono state eseguite le operazioni seguenti:In this tutorial, you've done the following:

  • Rotazione dei certificatiRotated certificates
  • Esportazione del certificato SSLExported the SSL certificate
  • Uso del certificato in Java, Python e Node.jsLearned how to use the certificate in Java, Python and Node.js

È ora possibile passare all'esercitazione Creare un trigger HTTP di Funzioni di Azure con un'associazione di input di Azure Cosmos DB.You can now proceed to the Create an Azure Functions HTTP trigger with an Azure Cosmos DB input binding tutorial.