首页 > 解决方案 > 通过 R Postgres 连接到 RDS 时如何指定 ca 证书?

问题描述

    #https://cran.r-project.org/web/packages/RPostgres/README.html

    library(DBI)
    # Connect to a specific postgres database i.e. Heroku
    con <- dbConnect(RPostgres::Postgres(),dbname = 'DATABASE_NAME', 
                     host = 'HOST', # i.e. 'ec2-54-83-201-96.compute-1.amazonaws.com'
                     port = 5432, # or any other port specified by your DBA
                     user = 'USERNAME',
                     password = 'PASSWORD')

尝试连接到数据库,但由于远程数据库是 Aurora,我收到 ssl 验证错误。是否有传递 SSL CA 根的参数?

标签: rpostgresql

解决方案


你可以这样做:

rt_cert <- paste0("PATH_OF_ROOT_CERTIFICATE/root-ca.crt")
cl_cert <- paste0("PATH_OF_ROOT_CERTIFICATE/xxx.crt")
cl_key <- paste0("PATH_OF_ROOT_CERTIFICATE/xxx.key")

con <- dbConnect(drv = RPostgres::Postgres(), 
                 dbname = 'DATABASE_NAME', 
                 host = 'HOST', # i.e. 'ec2-54-83-201-96.compute-1.amazonaws.com'
                 port = 5432, # or any other port specified by your DBA
                 user = 'USERNAME',
                 password = 'PASSWORD',
                 sslmode = 'require',
                 sslrootcert = rt_cert,
                 sslcert = cl_cert,
                 sslkey = cl_key)

推荐阅读