Configurare la connettività SSL nell'applicazione per la connessione sicura a Database di Azure per MySQL

Database di Azure per il server MySQL supporta la connessione alle applicazioni client tramite Secure Sockets Layer (SSL). L'applicazione delle connessioni SSL tra il server di database e le applicazioni client aiuta a proteggersi dagli attacchi "man in the middle" crittografando il flusso di dati tra il server e l'applicazione.

Per impostazione predefinita, il servizio di database deve essere configurato per richiedere le connessioni SSL quando ci si connette a Database di Azure per il server MySQL. Evitare di disabilitare l'opzione SSL, quando possibile.

Applicazione delle connessioni SSL

Per impostazione predefinita, l'applicazione delle connessioni SSL è abilitata quando si esegue il provisioning di una nuova un'istanza di Database di Azure per il server MySQL attraverso l'interfaccia della riga di comando e il portale di Azure.

Analogamente, le stringhe di connessione predefinite nelle impostazioni "Stringhe di connessione" relative al server nel portale di Azure includono i parametri obbligatori per le lingue comuni per poter richiedere connessioni SSL. Il parametro SSL varia in base al connettore, ad esempio "ssl=true", "sslmode=require" oppure "sslmode=required" e altre varianti.

Configurare l'applicazione di SSL

È possibile disabilitare o abilitare l'applicazione di SSL. Microsoft Azure consiglia di abilitare sempre l'impostazione Imponi connessione SSL per maggiore sicurezza.

Uso del portale di Azure

Usando il portale di Azure, passare all'istanza di Database di Azure per il server MySQL e fare clic su Sicurezza delle connessioni. Usare l'interruttore per abilitare o disabilitare l'impostazione Imponi connessione SSL. Fare quindi clic su Salva. Microsoft consiglia di abilitare sempre l'impostazione Imponi connessione SSL per maggiore sicurezza. enable-ssl

È possibile confermare l'impostazione aprendo la pagina Panoramica per visualizzare l'indicatore Stato imposizione SSL.

Utilizzare l'interfaccia della riga di comando di Azure

È possibile abilitare o disabilitare il parametro ssl-enforcement usando rispettivamente i valori Enabled o Disabled nell'interfaccia della riga di comando di Azure.

az mysql server update --resource-group myresource --name mysqlserver4demo --ssl-enforcement Enabled

Verificare che le connessioni SSL siano supportate dall'applicazione o dal framework

Per impostazione predefinita, molte applicazioni comuni che usano i servizi di database MySQL, quali Wordpress, Drupal e Magento, non abilitano SSL durante l'installazione. Abilitare la connettività SSL in queste applicazioni dopo l'installazione o tramite i comandi dell'interfaccia della riga di comando specifici dell'applicazione. Se il server MySQL applica le connessioni SSL e l'applicazione associata non è configurata correttamente, è possibile che l'applicazione non riesca a connettersi al server di database. Consultare la documentazione dell'applicazione per le informazioni su come abilitare le connessioni SSL.

Applicazioni che richiedono un certificato locale per la connettività SSL

In alcuni casi, le applicazioni richiedono un file di certificato locale (file PEM) generato da un file di certificato (file CER) dell'autorità di certificazione (CA) per connettersi in modo sicuro. Vedere la procedura seguente per ottenere il file CER, generare il file PEM locale e associarlo all'applicazione.

Scaricare il file del certificato dall'autorità di certificazione (CA)

Il certificato richiesto per comunicare con Database di Azure per il server MySQL tramite SSL è disponibile qui. Scaricare il file del certificato nel disco locale. In questa esercitazione si usa c:\ssl.

Scaricare e installare OpenSSL nel computer

Per generare il file PEM locale richiesto dall'applicazione per connettersi al server di database in modo sicuro, è necessario installare OpenSSL nel computer locale.

Le sezioni seguenti descrivono l'approccio che è possibile usare, ovvero un PC Windows o Linux, a seconda del sistema operativo preferito. È possibile seguire un solo metodo.

Utenti Linux: scaricare e installare OpenSSL usando un computer Linux

Le librerie OpenSSL vengono distribuite nel codice sorgente direttamente da OpenSSL Software Foundation. Le istruzioni seguenti consentono di eseguire i passaggi necessari per installare OpenSSL nel computer Linux. In questa guida vengono illustrati i comandi per Ubuntu 12.04 e versioni successive.

Aprire una sessione terminal e installare OpenSSL

wget http://www.openssl.org/source/openssl-1.1.0e.tar.gz

Estrarre i file dal pacchetto di download

tar -xvzf openssl-1.1.0e.tar.gz

Specificare la directory in cui sono stati estratti i file. Per impostazione predefinita, deve essere come segue.

cd openssl-1.1.0e

Configurare OpenSSL eseguendo questo comando. Per salvare i file in una cartella diversa da /usr/local/openssl, modificare il comando seguente secondo le esigenze.

./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

Ora che OpenSSL è stato configurato correttamente, è necessario compilarlo per convertire il certificato. A tale scopo, eseguire il comando seguente:

make

Al termine della compilazione è possibile installare OpenSSL come eseguibile con questo comando:

make install

Per confermare di aver installato correttamente OpenSSL nel sistema, eseguire il comando seguente. Assicurarsi quindi di ottenere lo stesso output.

/usr/local/openssl/bin/openssl version

In caso affermativo, si dovrebbe vedere il messaggio seguente:

OpenSSL 1.1.0e 7 Apr 2014

Utenti Windows: scaricare e installare OpenSSL usando un computer Windows

Per generare il file PEM locale richiesto dall'applicazione per connettersi al server di database in modo sicuro, è necessario installare OpenSSL nel computer locale.

Le librerie OpenSSL vengono distribuite nel codice sorgente direttamente da OpenSSL Software Foundation. Le istruzioni seguenti consentono di eseguire i passaggi necessari per installare OpenSSL nel computer Linux.

L'installazione di OpenSSL in un PC Windows può essere eseguita nei modi seguenti:

  1. (Scelta consigliata) Usando la funzionalità Bash per Windows disponibile in Windows 10 e versioni successive, OpenSSL viene installato per impostazione predefinita. Le istruzioni su come abilitare la funzionalità Bash per Windows in Windows 10 sono disponibili qui.

  2. Tramite il download di un'applicazione Win32/64 bit fornita dalla community. Pur non fornendo o avallando eventuali programmi di installazione di Windows specifici, OpenSSL Software Foundation offre un elenco dei programmi di installazione disponibili qui

Convertire il certificato CER in un certificato locale PEM

Il file CA radice scaricato è in formato CRT. Usare OpenSSL per convertire il file di certificato in un file PEM. A tale scopo, con lo strumento da riga di comando openssl.exe eseguire questo comando:

OpenSSL>x509 -inform DER -in BaltimoreCyberTrustRoot.crt -out MyServerCACert.pem

Ora che è stato creato il file di certificato MyServerCACert.pem, è possibile connettersi al server di database in modo sicuro tramite SSL.

Gli esempi seguenti illustrano come connettersi al server MySQL tramite l'interfaccia della riga di comando di MySQL e MySQL Workbench usando il file MyServerCACert.pem.

Connessione al server con l'interfaccia della riga di comando di MySQL tramite SSL

Usando l'interfaccia della riga di comando di MySQL, eseguire questo comando:

mysql.exe -h mysqlserver4demo.mysql.database.azure.com -uUsername@mysqlserver4demo -pYourPassword --ssl-ca=c:\ssl\MyServerCACert.pem

Eseguire il comando mysql status per verificare di essere connessi al server MySQL tramite SSL:

mysql> status
--------------
mysql.exe  Ver 14.14 Distrib 5.7.18, for Win64 (x86_64)

Connection id:          65535
Current database:
Current user:           jason@66.235.55.141
SSL:                    Cipher in use is AES256-SHA
Using delimiter:        ;
Server version:         5.6.26.0 MySQL Community Server (GPL)
Protocol version:       10
Connection:             janderserver.mysql.sqltest-eg1.mscds.com via TCP/IP
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    cp850
Conn.  characterset:    cp850
TCP port:               3306
Uptime:                 1 day 19 hours 9 min 43 sec

Threads: 4  Questions: 26082  Slow queries: 0  Opens: 112  Flush tables: 1  Open tables: 105  Queries per second avg: 0.167
--------------
Nota

Attualmente esiste un problema noto: se si usa l'opzione "--ssl-mode=VERIFY_IDENTITY" nella connessione di mysql.exe al servizio, la connessione non riesce e mostra l'errore seguente: ERROR 2026 (HY000): Errore di connessione SSL: Errore nella convalida del certificato SSL Effettuare il downgrade a "--ssl-mode=VERIFY_CA" o a modalità SSL inferiori. Se invece è necessario usare "--ssl-mode=VERIFY_IDENTITY", adottare il nome del server di area fino a quando il problema non viene risolto. Eseguire un ping al nome del server per determinare il server di area, ad esempio westeurope1-a.control.database.windows.net, e usarlo nella connessione. In futuro questa limitazione verrà rimossa.

Connessione al server con MySQL Workbench tramite SSL

Configurare MySQL Workbench per connettersi in modo sicuro tramite SSL. Passare alla scheda SSL nella finestra di dialogo Setup New Connection (Configura nuova connessione) di MySQL Workbench. Immettere il percorso del file MyServerCACert.pem nel campo SSL CA File: (File CA SSL:). Salvare un riquadro personalizzato

Passaggi successivi

Esaminare varie opzioni di connettività dell'applicazione in Raccolte di connessioni per Database di Azure per MySQL