我在将 Google Apps 脚本连接到我的 MariaDB 实例时遇到了困难。
这是我在这个例子中使用的 GAS:
https://gist.github.com/HappymanOkajima/8740727662e9ba0e0ffd52006484c47f
MariaDB 实例来自原始 dockerhub 镜像:mariadb:10.4
我已成功将 MariaDB 配置为使用 SSL 运行(使用 Metabase 验证,并显示 'havessl'='YES')
对于上下文,以下命令用于生成 ssl 密钥:
为 CA 证书生成密钥
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 > ./ca-key.pem
生成 CA 证书
openssl req -new -x509 -nodes -days 36500 -key ./ca-key.pem -out ./ca-cert.pem -subj "/C=US/ST=NY/L=NTC/O=company/CN=company"
创建 SQL 服务器密钥
openssl req -newkey rsa:4096 -nodes -keyout ./server-key.pem -out ./server-req.pem -subj "/C=US/ST=NY/L=NTC/O=company/CN=sql.server.com"
创建 SQL 服务器证书
openssl x509 -req -in ./kn-req.pem -days 36500 -CA ./ca-cert.pem -CAkey ./ca-key.pem -CAcreateserial -out ./server-cert.pem
将服务器密钥转换为 RSA(mariadb 只读取这个)
openssl rsa -in ./server-key.pem -out ./server-key-rsa.pem
SQL server 配置有 ca-cert.pem、server-cert.pem 和 server-key-rsa.pem
创建客户端密钥(用于 Supermetrics)
openssl req -newkey rsa:4096 -nodes -keyout ./client-key.pem -out ./client-req.pem -subj "/C=US/ST=NY/L=NTC/O=company/CN=supermetrics"
创建客户端证书
openssl x509 -req -in ./client-req.pem -days 36500 -CA ./ca-cert.pem -CAkey ./ca-key.pem -CAcreateserial -out ./client-cert.pem
为 Supermetrics 创建 RSA 版本
openssl rsa -in ./client-key.pem -out ./client-key-rsa.pem
然后我用 cat 打印这些文件:ca-cert.pem, client-cert.pem, client-key.pem
并将字符串复制粘贴到 Google Apps 脚本中,附加\n\
到每行的末尾。
这是显示的错误:
Exception: Failed to establish a database connection. Check connection string, username and password.
我还验证了如果我删除?useSSL=true
,连接成功完成
我在这里想念什么?我已经搜索了所有关于这个的谷歌开发论坛帖子和 stackoverflow 问题,他们似乎都说这是正确的解决方案。有没有人能够复制这个来验证?