web-dev-qa-db-ja.com

MySQL SSL:SSL_CTX_set_default_verify_pathsが失敗しました

私はSSLをMySQLで動作させるために数日間試みてきました。

これは私が現在持っている設定です:

MySQL 5.7.17-0ubuntu0.16.04.1

これは、MySQLサーバーを起動したときに受け取るエラーです

次のSSLライブラリエラーのため、SSLのセットアップに失敗しました:SSL_CTX_set_default_verify_paths failed

設定ファイル:

sl-ca = /etc/mysql-ssl/ca-cert.pem
ssl-cert = /etc/mysql-ssl/server-cert.pem
ssl-key = /etc/mysql-ssl/server-key.pem
ssl

私は この投稿Chownファイルを読み、SELinuxが有効になっているかどうか(インストールされていないかどうか)を確認しました

また、これらのコマンドを実行して、次の応答を得ました。

Sudo -u mysql cat /etc/mysql-ssl/ca-cert.pem
-----BEGIN CERTIFICATE-----

Sudo -u mysql cat /etc/mysql-ssl/server-cert.pem
-----BEGIN CERTIFICATE-----

Sudo -u mysql cat /etc/mysql-ssl/server-key.pem
-----BEGIN RSA PRIVATE KEY-----

この時点で、私は次にどこに向けるかについてのアイデアが不足しています。誰かが私を正しい方向に向けることができますか?.

4
Dave B
  1. データベースに有効なシステム/サービスアカウントを使用する(mysql)
  2. 所有者をこのdatabase-service-accountに設定します(mysql)
  3. パスを確認してください
  4. openssl証明書を確認する
  5. 正しく便利なアクセス権を設定します(実行可能ファイルではないため、0660に注意してください)。
  6. selinuxまたはapparmorの設定を確認してください!アクセスをブロックできます!

以下は、ファイル情報を表示し、正しいユーザーとRW権限rootとして実行を設定するか、すべての先頭にSudoを追加する必要があります。

echo # show all entries of my.cnf (should 4 without # also wrong config settings)
cat /etc/mysql/my.cnf | grep ssl;
echo # Folder checkup (should list your PEM-Files)
ls -al /etc/mysql-ssl/;
echo # set all PEM-Files to user mysql
chown -R mysql:root /etc/mysql-ssl/*.pem
echo # set all PEM-Files to read-only from User (oder or use 660 )
chmod -R 600 /etc/mysql-ssl/*.pem
echo # restart mariaDB wait 5 secounds and show SSL errors
service mysql restart; sleep 5; service mysql status | grep SSL_CTX_set_default_verify_paths

Ubuntuサーバーに別のグループ(ssl-certs)を作成し、mysqlをそのグループに追加して、それに応じてすべての権限(両方のフォルダー-0750/files-0640)を設定しました。 mysqlがファイルにアクセスできることを確認したい場合は、mysqlにsuして、(rootとして)チェックできます。

su --Shell=/bin/bash mysql
ls -la /path/cert/is/

すべてのパス(CA、証明書、秘密鍵)を確認することを忘れないでください。

3
Xander Rayeon

sl-ca = /etc/mysql-ssl/ca-cert.pemssl-ca = /etc/mysql-ssl/ca-cert.pem

1
jsnfwlr

これが他の人の役に立つことを願って、ディスクにすべてのファイルを置き、すべての適切な権限を設定した後、Apacheを再起動する必要がありました。

0
James MV