![](/img/trans.png)
[英]AWS Aurora PostgreSQL - x509: certificate signed by unknown authority
[英]What is the "[full path]" component of the SSL Certificate Authority given by MySQL and PostgreSQL (boto3) calls in the AWS docs?
In the AWS documentation for " Connecting to your DB instance using IAM authentication and the AWS SDK for Python (Boto3) ", the following call is made to both psycopg2.connect
(shown) and mysql.connector.connect
:
conn = psycopg2.connect(
host=ENDPOINT,
user=USR,
passwd=token,
port=PORT,
database=DBNAME,
ssl_ca='[full path]rds-combined-ca-bundle.pem'
)
我看到一些關於ssl_ca
路徑( 此處和此處)以及這些捆綁包的用途的討論。 但是我在這里給出的三個鏈接都沒有描述 AWS 文檔給出的[full path]
組件,或者它指向的位置。 我目前的猜測(來自第二個鏈接)是這個URL,但我想確定一下。
此外,將此捆綁包下載到運行這些 Python 3 (boto3) 腳本的遠程 EC2 有什么好處?
編輯:順便說一句,上述對psycopg2.connect
的調用正在 Jupyter 中使用 Python 3.9.5 目前在 EC2 上運行, [full path]
按原樣編寫...
您應該將“[完整路徑]”替換為您將 pem 文件下載到本地計算機時保存的文件系統路徑(目錄路徑)(從您提供的最后一個 URL)到本地計算機。
使用它的好處是您的客戶端將驗證它是否連接到正確的數據庫,而不是某些惡意系統正在攔截您的流量。 我不認為你認為這有多么有利:如果有人已經破壞了亞馬遜足以攔截他們的內部流量,他們也可能已經破壞了他們的 CA。 但至少有一些可能性,他們做了一個沒有另一個。
您顯示的代碼對我不起作用,因為 ssl_ca 不是它的拼寫方式。 假設您使用了 PostgreSQL 第一個鏈接中實際給出的代碼:
sslmode='prefer', sslrootcert="[full path]rds-combined-ca-bundle.pem"
然后,盡管存在虛假路徑,它仍然有效的原因是“首選”意味着它不在乎是否缺少 rootcert,它只是在這種情況下跳過驗證。 如果您將其更改為“驗證完整”,那么它可能會停止工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.