MariaDB 11.4 がGAになり、SSLが自動で有効になるようになりました。合わせてMariaDB Connector/Cも3.4からデフォルトでSSLを利用し、かつサーバーの証明書を検証するようになりました。
これにより、MariaDB Connector/C 3.4以降のライブラリを利用してMySQLや古いMariaDBに接続する場合に、SSLで接続できないとか、証明書の検証に失敗するといった問題が発生するようになりました。 これらをリンクしたPythonのmysqlclientやRubyのmysql2のようなクライアントライブラリには続々と問題報告が上がってきています。
この問題に対処するいくつかの方法を紹介します。まずはConnectorをリンクしたライブラリの利用者ができることから。
- MariaDB Connector/C 3.3を使う
~/.my.cnf
等が利用されるなら、[client]
セクションにdisable-ssl
を書いてSSLを無効化するか、disable-ssl-verify-server-cert
を書いて証明書の検証を無効化する。- MariaDB Connector/C 3.4 をビルドする時のcmakeのオプションに
-DDEFAULT_SSL_VERIFY_SERVER_CERT=0
を追加する。(証明書の検証をデフォルトでオフにできるだけで、SSLをデフォルトでオフにはならない) (参考) - MariaDB Connector/C 3.4.2 (未リリース)以降を使い、
MARIADB_TLS_DISABLE_PEER_VERIFICATION
環境変数を設定する。(同じく検証のみがオフになる)(参考)
また、MariaDB Connector/CやMySQL Connector/Cを利用するクライアントライブラリを開発している人向けのヒントも紹介します。