将SSL证书添加到mysql docker容器中

fil*_*ilt 8 mysql django ssl nginx docker

我正在为django应用程序构建一个docker容器,它使用nginx和uwsgi.对于数据库,应用程序使用的是mysql,它位于不同的容器中,并且它们都与docker-compose.yml文件链接:

version: '2'
services:
    mysql:  
        image: mysql:latest
        environment:
            -MYSQL_DATABASE: TheDatabase
            -MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
            -MYSQL_USER: TheUsername
            -MYSQL_PASSWORD: ThePassword

        ports:
            -"3306:3306"

    django:
        build: .
        volumes:
            - .:/app
        ports:
            - "443:443"
            - "8000:8000"
        links:
            - mysql
Run Code Online (Sandbox Code Playgroud)

我使用的是SSL证书,它使用OpenSSL进行自签名,并包含在nginx.conf文件中.问题是,每次我运行容器并尝试以超级用户身份登录时,我都会收到以下错误:504 Timed Out.在经过深思熟虑之后,我得出的结论是,问题在于与mysql数据库的连接.我确实输入了mysql容器并看到数据库在那里,在检查表之后,我看到所有表都已创建.但是,在阅读日志后,我注意到以下行:

[警告]由于以下SSL库错误,无法设置SSL:如果没有证书和私钥,SSL上下文将无法使用.

当我使用来自docker hub的现成图像时,我应该如何添加SSL密钥和证书?这就是为什么我得到504 Timed out错误?我也收到以下3个警告:

[警告]在-skip-name-resolve模式下忽略'db'条目'sys mysql.sys@localhost'.

[警告]在--skip-name-resolve模式下忽略'proxies_priv'条目'@root @ localhost'.

[警告]'tables_priv'条目'sys_config mysql.sys@localhost'在--skip-name-resolve模式下被忽略

Vin*_*eth 1

\n

“如果您希望服务器能够部署自动支持安全连接,请使用 mysql_ssl_rsa_setup 实用程序创建默认 SSL 和 RSA 文件:

\n
\n\n
shell> mysql_ssl_rsa_setup\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

有关详细信息,请参阅第 4.4.5 节 \xe2\x80\x9cmysql_ssl_rsa_setup \xe2\x80\x94 创建\n SSL/RSA 文件\xe2\x80\x9d。

\n
\n\n

mysql_ssl_rsa_设置

\n\n

只有 MySQL 企业版服务器会在 --initialize 时为您创建证书。

\n\n

礼貌-MySQL

\n