【问题标题】:Adding SSL certificates to a mysql docker container将 SSL 证书添加到 mysql docker 容器
【发布时间】:2017-04-21 05:36:14
【问题描述】:

我正在为一个使用 nginx 和 uwsgi 的 django 应用程序构建一个 docker 容器。对于数据库,应用程序正在使用 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

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

[警告] 由于以下 SSL 库错误,无法设置 SSL:SSL 上下文在没有证书和私钥的情况下不可用。

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

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

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

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

【问题讨论】:

    标签: mysql django ssl nginx docker


    【解决方案1】:

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

    shell> mysql_ssl_rsa_setup
    

    有关更多信息,请参阅第 4.4.5 节,“mysql_ssl_rsa_setup - 创建 SSL/RSA 文件”。

    mysql_ssl_rsa_setup

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

    Courtesy-MySQL

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 2018-12-26
      • 1970-01-01
      • 2018-04-06
      • 2021-07-10
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 2017-08-31
      相关资源
      最近更新 更多