Configurare OpenSSL per Linux

Quando si usa una versione di Speech SDK precedente alla 1.9.0, OpenSSL viene configurato dinamicamente per la versione del sistema host. Nelle versioni successive di Speech SDK, OpenSSL (versione 1.1.1b)è collegato in modo statico alla libreria principale di Speech SDK.

Per garantire la connettività, verificare che i certificati OpenSSL siano stati installati nel sistema. Eseguire un comando:

openssl version -d

L'output nei sistemi basati su Ubuntu/Debian deve essere:

OPENSSLDIR: "/usr/lib/ssl"

Controllare se è presente certs una sottodirectory in OPENSSLDIR. Nell'esempio precedente, sarebbe /usr/lib/ssl/certs .

  • Se è presente e contiene molti singoli file di certificato (con o estensione), non è necessario /usr/lib/ssl/certs eseguire altre .crt .pem azioni.

  • Se OPENSSLDIR è diverso da e/o è presente un singolo file bundle di certificati anziché più singoli file, è necessario impostare una variabile di ambiente SSL appropriata per indicare dove è possibile trovare i /usr/lib/ssl certificati.

Esempio

  • OPENSSLDIR è /opt/ssl . È presente certs una sottodirectory con molti .crt file o .pem . Impostare la variabile SSL_CERT_DIR di ambiente in modo che punti a prima di eseguire un programma che usa Speech /opt/ssl/certs SDK. Ad esempio:
export SSL_CERT_DIR=/opt/ssl/certs
  • OPENSSLDIR è /etc/pki/tls (come nei sistemi basati su RHEL/CentOS). Esiste una certs sottodirectory con un file di bundle di certificati, ad esempio ca-bundle.crt . Impostare la variabile SSL_CERT_FILE di ambiente in modo che punti a tale file prima di eseguire un programma che usa Speech SDK. Ad esempio:
export SSL_CERT_FILE=/etc/pki/tls/certs/ca-bundle.crt

Controlli di revoca dei certificati

Quando ci si connette al servizio Voce, Speech SDK verificherà che il certificato TLS usato dal servizio voce non sia stato revocato. Per eseguire questo controllo, Speech SDK dovrà accedere ai punti di distribuzione CRL per le autorità di certificazione usate da Azure. Un elenco dei possibili percorsi di download CRL è disponibile in questo documento. Se un certificato è stato revocato o non è possibile scaricare il CRL, Speech SDK interromperà la connessione e genererà l'evento Canceled.

Nel caso in cui la rete da cui viene usato Speech SDK sia configurata in modo da non consentire l'accesso ai percorsi di download CRL, il controllo CRL può essere disabilitato o impostato in modo da non avere esito negativo se non è possibile recuperare l'elenco CRL. Questa configurazione viene eseguita tramite l'oggetto di configurazione usato per creare un oggetto Recognizer.

Per continuare con la connessione quando non è possibile recuperare un CRL, impostare la proprietà OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE.

config.SetProperty("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true");
config->SetProperty("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true");
config.setProperty("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true");
speech_config.set_property_by_name("OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE", "true")?
[config setPropertyTo:@"true" byName:"OPENSSL_CONTINUE_ON_CRL_DOWNLOAD_FAILURE"];

Se impostato su "true", verrà effettuato un tentativo di recuperare l'elenco CRL e, se il recupero ha esito positivo, verrà verificata la revoca del certificato. Se il recupero non riesce, la connessione può continuare.

Per disabilitare completamente i controlli di revoca dei certificati, impostare la proprietà OPENSSL_DISABLE_CRL_CHECK su "true".

config.SetProperty("OPENSSL_DISABLE_CRL_CHECK", "true");
config->SetProperty("OPENSSL_DISABLE_CRL_CHECK", "true");
config.setProperty("OPENSSL_DISABLE_CRL_CHECK", "true");
speech_config.set_property_by_name("OPENSSL_DISABLE_CRL_CHECK", "true")?
[config setPropertyTo:@"true" byName:"OPENSSL_DISABLE_CRL_CHECK"];

Nota

È anche importante notare che alcune distribuzioni di Linux non hanno una variabile di ambiente TMP o TMPDIR definita. In questo modo Speech SDK scaricherà l'elenco di revoche di certificati (CRL) ogni volta, anziché memorizzare nella cache l'elenco CRL su disco per il riutilizzo fino alla scadenza. Per migliorare le prestazioni di connessione iniziale, è possibile creare una variabile di ambiente denominata TMPDIRe impostarla sul percorso della directory temporanea scelta. .

Passaggi successivi