使用psycopg2通过SSL连接到Google Cloud SQL的Postgres数据库

5

今天我才开始学习加密技术,如果我的问题太基础请多包涵。

我有一个在GCP上设置了SSL加密的Postgres SQL实例。我已经在GCP上创建了一个客户端证书,并下载和存储了以下文件:

  • server-ca.pem
  • client-cert.pem
  • client-key.pem

这些文件都在我的电脑中。

我正在尝试使用Python3.6中的psycopg2连接到远程数据库(使用conda安装)。我查看了文档以建立连接,显然需要使用上述文件才能建立连接。具体来说,在psycopg2.connect()函数中,我使用以下参数:

  • sslmode='verify-ca'
  • sslcert=[客户端证书client-cert.pem文件的本地路径]
  • sslkey=[客户端密钥client-key.pem文件的本地路径]
  • sslrootcert=[服务器证书server-ca.pem文件的本地路径]

此文档的说明,上述文件需要以以下格式结尾:.crt.key,否则将出现错误。

经过我的研究,我发现我(可能)需要使用openssl生成.crt.key格式的文件。那我该怎么做呢?

如果我转换了.pem文件并将转换后的文件传递给psycopg2.connect()函数,我能连接到远程数据库吗?

1个回答

2

使用openssl将.pem文件转换为.crt和.key文件

首先,在命令提示符/终端中进入存储.pem文件的目录。

对于.crt文件,请键入:

  • openssl x509 -in client-cert.pem -out ssl-cert.crt
  • openssl x509 -in server-ca.pem -out ca-cert.crt

对于.key文件,请键入:

  • openssl rsa -in client-key.pem -out ssl-key.key

最后,要使用psycopg2.connect()连接到数据库,只需将上述文件的文件路径传递给sslcert,sslkey和sslrootcert参数即可。


1
仍然对我超时 :( - CpILL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接