2015-08-13 250 views
3

我會在我不想嘗試通過SSL時連接到數據庫實例的前言。嘗試通過mysql CLI連接到mysql Aurora時出現SSL連接錯誤

我在這裏

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Connect.html

按照本指南我已確保數據庫實例是面向公衆的。

的VPC的安全組具有以下規則:

Type Protocol Port Range Source 
MySQL/Aurora (3306) TCP (6) 3306 my_ip_address/32 
MySQL/Aurora (3306) TCP (6) 3306 sg-security_group_name 

凡security_group_name是我的EC2集羣安全組。

我正在使用我的極光羣集的cluser端點。我已經移除了端口。我使用自制軟件在我的機器上安裝了mysql。這是我從我的本地機器上嘗試命令(的MacBook):

mysql -h blah-database-cluster.cluster-dfgdgfd.us-east-1.rds.amazonaws.com --ssl-ca=rds-ssl-ca-cert.pem --ssl-verify-server-cert 

收到RDS-SSL-CA-cert.pem是我從這裏下載的文件:

http://s3.amazonaws.com/rds-downloads/rds-ssl-ca-cert.pem 

我得到的錯誤:

ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1) 

我試圖創建一個新的實例,重新啓動等並沒有喜悅。我的安全組是否需要某種https規則?

編輯:

進一步的線索。當我在本地運行mysql --ssl時,它不會報錯。但是當我做mysql show_variables時,它表示SSL錯誤,並且has_ssl和have_open_ssl變量不存在。這可能是問題嗎?我通過Mac的自制軟件包管理器安裝了本地mysql。

新編輯:

我重新安裝MySQL的(以前從BREW),現在從Oracle直接,當我嘗試連接它給出了不同的錯誤 - SSL連接錯誤:ASN:壞其他簽字確認

+0

這肯定不是安全組中,因爲MySQL的(不像HTTP)的一種機制不需要談判使用SSL和單獨的端口。出於好奇,連接時使用完整的DNS主機名,是的?如果你省略'--ssl-verify-server-cert',會發生什麼? –

+0

@ Michael-sqlbot是的,我使用完整的主機名。如果我省略驗證服務器證書,我會得到相同的錯誤。如果我省略ssl完成並嘗試一個普通的mysql命令行連接,我可以進去。我想這意味着我的客戶端的一些問題mysql和ssl不工作。我注意到have_ssl和have_open_ssl變量也不存在 –

+0

本地機器上的時間是否正確?漂流時鐘可能導致SSL出錯。 –

回答

6
  1. 目前AWS Aurora文檔已鏈接到過期的SSL證書以供使用,因此存在問題。這已得到AWS支持人員的確認。改爲:https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

  2. 即使使用該證書,通過SSL連接到羣集端點仍然不能用於使用mysql -h連接的命令行。如果我奇怪地從集羣端點更改爲實例端點,它就會起作用。

  3. 奇怪的是,mysql工作臺確實通過ssl連接到實例端點和集羣終點。

+0

同樣的問題在這裏...羣集不會連接,實例是可以的。 –

0

docs看來,實例端點對SSL連接的限制是與證書關聯的安全約束。

Amazon RDS creates an SSL certificate and installs the certificate on the DB instance when Amazon RDS provisions the instance. These certificates are signed by a certificate authority. The SSL certificate includes the DB instance endpoint as the Common Name (CN) for the SSL certificate to guard against spoofing attacks. As a result, you cannot use the DB cluster endpoint to connect to the primary instance of the DB cluster using SSL.

+0

只是一個供參考,當時我沒有在創建這個問題的文檔中。 –

+0

沒問題。我偶然發現了這裏,所以我可以在以後找到它。 –

0

用--skip-SSL選項使用MySQL,如果你不使用SSL.If沒有什麼幫助升級MySQL客戶端

+0

也可能會有一些其他的SSL選項在您的my.cnf將導致同樣的失敗。 您可以使用--no-defaults來忽略my.cnf文件,例如: mysql --no-defaults -h yourserver.us-west-2.rds.amazonaws.com --ssl-ca =/etc/app-ssl -rds/rds-ca-2015-us-west-2-bundle.pem -uyouruser -p – Zaur