连接到RedShift会导致SSL错误:证书验证失败

时间:2018-11-14 05:25:08

标签: python ssl sqlalchemy amazon-redshift psycopg2

我正在尝试通过Python 2.7 / sqlalchemy(1.2.14)/ psycopg2(2.7.6.1)连接到RedShift数据库,但是在配置SSL属性时遇到问题:

from sqlalchemy import create_engine

connection = create_engine('redshift+psycopg2://(username:password)@(server):5439/(database)?sslmode=verify-full').connect()
  

sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)SSL错误:证书验证失败

我已经按照亚马逊的指示完成了所有步骤:

  1. Transitioning to ACM Certificates for SSL Connections: Using Other SSL Connection Types

  2. Install and Configure the Amazon Redshift ODBC Driver on Microsoft Windows Operating Systems

因此,我现在将最新版本的redshift-ca-bundle.crt作为root.crt保存到我的%APPDATA%\ postgresql文件夹中。我还安装了32位和64位驱动程序,并在两个ODBC管理器工具(32和64)中配置了系统DSN,以成功验证服务器连接。

我缺少什么才能在Python代码中正确配置SSL以进行连接?我确实知道需要SSL才能进行连接,但是不确定如何提供正确的证书。

1 个答案:

答案 0 :(得分:1)

我可以使用pypyodbc和以下连接字符串成功连接(详细信息已删除):

Data have; 
input gender wgt q1 year;
lines;
0  1.5  0  2014
0  1    1  2014
0  1.5  1  2014
0  1    1  2014
0  1.5  0  2014
1  1    1  2014
1  1    1  2014
1  1    1  2014
1  1    0  2014
1  1   1  2014
1  1    1  2014
;
run;

Proc format;
  value gender  0="boy";
                1= "girl";
  value q1f     0= "No"
                1="Yes";
run;

Proc tabulate data=have;
class gender q1 year;
weight wgt;
table gender*pctn<q1>, year*q1;
format gender gender. q1 q1f.;
run;