sql >> Databáze >  >> RDS >> Mysql

Výukový program MySQL – Konfigurace a správa SSL na vašem serveru MySQL

V tomto příspěvku na blogu se podíváme na některé důležité aspekty konfigurace a správy SSL v hostingu MySQL. Ty by zahrnovaly výchozí konfiguraci, deaktivaci SSL a povolení a vynucení SSL na serveru MySQL. Naše pozorování jsou založena na komunitní verzi MySQL 5.7.21.

Výchozí konfigurace SSL v MySQL

Ve výchozím nastavení server MySQL vždy nainstaluje a povolí konfiguraci SSL. Není však vynuceno, aby se klienti připojovali pomocí SSL. Klienti si mohou vybrat připojení s nebo bez SSL, protože server umožňuje oba typy připojení. Podívejme se, jak ověřit toto výchozí chování serveru MySQL.

Když je na serveru MySQL ve výchozím nastavení nainstalováno a povoleno SSL, obvykle se zobrazí následující:

  1. Přítomnost souborů *.pem v datovém adresáři MySQL. Toto jsou různé klientské a serverové certifikáty a klíče, které se používají pro SSL, jak je popsáno zde.
  2. Během spouštění serveru bude v souboru protokolu chyb mysqld poznámka, například:
    • [Poznámka] Nalezeno ca.pem, server-cert.pem a server-key.pem v datovém adresáři. Pokouším se pomocí nich povolit podporu SSL.
  3. Hodnota proměnné ‘have_ssl’ bude ANO:

mysql> zobrazí proměnné jako ‘have_ssl’;

+—————+——-+

| Název_proměnné | Hodnota |

+—————+——-+

| have_ssl      | ANO |

+—————+——-+

Pokud jde o klienta MySQL, ve výchozím nastavení se vždy snaží přejít k šifrovanému síťovému připojení se serverem, a pokud to selže, přejde zpět do nešifrovaného režimu.

Takže připojením k serveru MySQL pomocí příkazu:

mysql -h -u -p

Můžeme zkontrolovat, zda je aktuální připojení klienta zašifrováno nebo ne pomocí příkazu status:

stav mysql>

————–

mysql  Ver 14.14 Distrib 5.7.21, pro Linux (x86_64) pomocí  EditLine wrapper

ID připojení:         75

Aktuální databáze:

Aktuální uživatel:          [email protected]

SSL:                   Použitá šifra je DHE-RSA-AES256-SHA

Aktuální pager:         stdout

Použití výstupního souboru:         ”

Použití oddělovače:       ;

Verze serveru:         5.7.21-log MySQL Community Server (GPL)

Verze protokolu:       10

Připojení:             127.0.0.1 přes TCP/IP

…………………………..

Pole SSL zvýrazněné výše znamená, že připojení je šifrováno. Můžeme však požádat klienta MySQL, aby se připojil bez SSL pomocí příkazu:

mysql -h -u  -p –ssl-mode=ZAKÁZÁNO

 stav mysql>

————–

ID připojení:         93

Aktuální databáze:

Aktuální uživatel:          [email protected]

SSL:                    Nepoužívá se

Aktuální pager:         stdout

Použití výstupního souboru:         ”

Použití oddělovače:       ;

Verze serveru:         5.7.21-log MySQL Community Server (GPL)

Verze protokolu:       10

Připojení:             127.0.0.1 přes TCP/IP

…………………………………

Vidíme, že i když je na serveru povoleno SSL, můžeme se k němu připojit bez SSL.

Výukový program MySQL – Jak konfigurovat a spravovat SSL na vašem #MySQL ServerClick To Tweet

Zakázání SSL v MySQL

Pokud je vaším požadavkem úplné vypnutí SSL na serveru MySQL namísto výchozí možnosti ‚povolený, ale volitelný režim‘, můžeme provést následující:

  1.  Smažte certifikát *.pem a soubory klíčů v datovém adresáři MySQL.
  2. Spusťte MySQL s vypnutou možností SSL. To lze provést přidáním položky řádku:

ssl=0   v souboru my.cnf.

 Můžeme pozorovat, že:

  1. V protokolech mysqld NEBUDE žádná poznámka, například:
    • [Poznámka] Nalezeno ca.pem, server-cert.pem a server-key.pem v datovém adresáři. Pokouším se pomocí nich povolit podporu SSL.
  2.  Hodnota proměnné ‘have_ssl’ bude ZAKÁZÁNA:

mysql> zobrazí proměnné jako ‘have_ssl’;

+—————+——-+

| Název_proměnné | Hodnota |

+—————+——-+

| have_ssl      | VYPNUTO |

+—————+——-+

Vynucení SSL v MySQL

Viděli jsme, že ačkoliv bylo SSL ve výchozím nastavení na serveru MySQL povoleno, nebylo vynuceno a stále jsme se mohli připojit bez SSL.

Nyní, nastavením systémové proměnné require_secure_transport, budeme moci vynutit, aby server akceptoval pouze připojení SSL. To lze ověřit pokusem o připojení k serveru MySQL pomocí příkazu:

mysql -h -u sgroot -p –ssl-mode=DISABLED

A vidíme, že připojení by bylo odmítnuto s následující chybovou zprávou ze serveru:

CHYBA 3159 (HY000):Připojení využívající nezabezpečený přenos jsou zakázána, pokud –require_secure_transport=ON.

Úvahy o SSL pro replikační kanály

Ve výchozím nastavení se v nastavení replikace MySQL podřízené jednotky připojují k master bez šifrování.

Pro bezpečné připojení k hlavnímu serveru pro replikační provoz musí podřízené jednotky používat MASTER_SSL=1; jako součást „CHANGE MASTER TO“ příkaz, který specifikuje parametry pro připojení k masteru. Upozorňujeme, že tato možnost je také povinná v případě, že je váš hlavní server nakonfigurován k vynucení připojení SSL pomocí require_secure_transport.


  1. Jak opravit serializovaný řetězec, který byl poškozen nesprávnou délkou počtu bajtů?

  2. Rozdělte daný řetězec a připravte případové prohlášení

  3. Umístění souboru my.cnf v systému macOS

  4. Kód entitního rámce je pomalý při použití Include() mnohokrát