Skip to content

RDS(MySQL)に接続するとunable to get local issuer certificateエラーになる

Arch Linuxのパッケージには mariadb-clients があるけれど mysql-clients は存在しないので mariadb-clients をインストールする。

Terminal window
run0 pacman -S mariadb-clients

この状態でAWS RDSのMySQLインスタンスに接続すると、以下のようなエラーで弾かれることがある。

Terminal window
$ mariadb -h xxx.ap-northeast-1.rds.amazonaws.com -u root -p
Enter password:
ERROR 2026 (HY000): TLS/SSL error: unable to get local issuer certificate

Amazon RDS で100年有効な新しいCAが利用可能になりましたによると、どうやら新しくルート証明書が発行されたようで、これがシステムに入っていないから検証ができずエラーになっているようだった。証明書はUsing SSL/TLS to encrypt a connection to a DB instance or clusterにあるので、ここから該当のリージョンごとにPEMをダウンロードして、 —cert-ca オプションにAWSのルート証明書を与えれば解消する。

毎回与えるの面倒なのでmariadbクライアントにデフォルトのオプションを設定するのように設定しておきたい。複数のリージョンに接続する必要があっても、PEMなので単に結合すればいいだろう。