【问题标题】:AKS MySQL SSL problems (nodejs,knex)AKS MySQL SSL 问题(nodejs、knex)
【发布时间】:2018-09-08 08:47:54
【问题描述】:

我想通过 Azure Kubernetes 中的 envvars 在我的应用程序中为 MySQL 提供 SSL CA 证书,但我不断收到以下错误日志。

NAME: RollbackError
CODE: HANDSHAKE_SSL_ERROR
MESSAGE: unable to get local issuer certificate

我按照他们在文档中所说的一切,我可以从终端用 MySQL 客户端连接到它,所以证书没问题。

这就是我的 deployment.yml 中的内容:

....
env:
  - name: database__connection__ssl__ca
    value: "content_of_ssl_ca_cert_file" 
....

根据 NodeJS 的 MySQL 和 knexjs 文档,这是正确的做法,它接受字符串而不是文件或文件路径。 有人有什么想法吗?

所以,我终于设法解决了这个“微不足道”的问题。

....
    env:
      - name: database__connection__ssl__ca
        value: "-----BEGIN CERTIFICATE-----\n...\n...\n...-----END CERTIFICATE-----" 
....

需要突破线。

【问题讨论】:

  • 我从 SSL 证书文件中复制了文本,并将其放入一个环境变量中,该变量创建了连接到数据库所需的对象。如果我在 azure 中禁用 SSL 连接,它的工作良好并且功能正常。我假设证书作为字符串有一些东西。 Azure MySQL SSL -> 我正在处理链接的文章。在第 1 步中,您可以看到 SSL 证书,这就是我正在使用的。
  • 好吧,如果您这样做,您需要将其从文本解析为文件或对象
  • 根据 mysql 文档,它作为字符串等待它,不需要解析。或者你能给我举个例子吗?
  • 我从 ca 文件中复制了内容,这就是我提供的输入内容。编辑:我修改了上面的代码sn-p。
  • 终于找到了解决这个问题的办法。您需要提供如下输入:"-----BEGIN CERTIFICATE-----\n....\n....\n-----END CERTIFICATE-----"。需要换行。

标签: mysql azure ssl kubernetes azure-aks


【解决方案1】:

我已经编辑了问题,但这里是解决方案:

....
    env:
      - name: database__connection__ssl__ca
        value: "-----BEGIN CERTIFICATE-----\n...\n...\n...-----END CERTIFICATE-----" 
....

当您想从 cert 文件中复制内容并通过 envvars 作为字符串提供时,需要使用断线。 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 也必须在那里。

【讨论】:

    猜你喜欢
    • 2021-06-20
    • 1970-01-01
    • 2017-10-07
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 2019-08-12
    • 2021-03-09
    相关资源
    最近更新 更多