Python 使用psycopg2通过SSL连接到Google Cloud SQL Postgres DB
直到今天,我才对加密技术有所了解,所以如果我的问题是基本的,请原谅我 我有一个gcpsql实例,它是用SSL加密为Postgres设置的。我已在GCP上创建了客户端证书,并加载和存储了:Python 使用psycopg2通过SSL连接到Google Cloud SQL Postgres DB,python,ssl,openssl,google-cloud-platform,psycopg2,Python,Ssl,Openssl,Google Cloud Platform,Psycopg2,直到今天,我才对加密技术有所了解,所以如果我的问题是基本的,请原谅我 我有一个gcpsql实例,它是用SSL加密为Postgres设置的。我已在GCP上创建了客户端证书,并加载和存储了: server-ca.pem client-cert.pem 客户端密钥.pem 我电脑里的文件 我正在尝试使用python3.6(使用conda安装)中的psycopg2连接到远程数据库。我已经检查了用于建立连接的文件,显然需要使用上面的文件才能建立连接。具体而言,在psycopg2.connect()函数
- server-ca.pem
- client-cert.pem
- 客户端密钥.pem
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()
我是否能够连接到远程数据库?使用openssl将.pem文件转换为.crt和.key文件
首先,使用命令提示符/terminal转到存储.pem文件的目录
对于.crt文件类型:
opensslx509-in-client-cert.pem-out-ssl-cert.crt
opensslx509-in-server-ca.pem-out-ca-cert.crt
对于.key文件类型:
openssl rsa-in-client-key.pem-out ssl-key.key
最后,要使用psycopg2.connect()
连接到数据库,只需将上述文件的文件路径传递给sslcert、sslkey和sslrootcert
参数。对我来说仍然超时:(