RDS(MySQL)に接続するとunable to get local issuer certificateエラーになる
Arch Linuxのパッケージには mariadb-clients があるけれど mysql-clients は存在しないので mariadb-clients をインストールする。
run0 pacman -S mariadb-clientsこの状態でAWS RDSのMySQLインスタンスに接続すると、以下のようなエラーで弾かれることがある。
$ mariadb -h xxx.ap-northeast-1.rds.amazonaws.com -u root -pEnter password:ERROR 2026 (HY000): TLS/SSL error: unable to get local issuer certificateAmazon RDS で100年有効な新しいCAが利用可能になりましたによると、どうやら新しくルート証明書が発行されたようで、これがシステムに入っていないから検証ができずエラーになっているようだった。証明書はUsing SSL/TLS to encrypt a connection to a DB instance or clusterにあるので、ここから該当のリージョンごとにPEMをダウンロードして、 —cert-ca オプションにAWSのルート証明書を与えれば解消する。
毎回与えるの面倒なのでmariadbクライアントにデフォルトのオプションを設定するのように設定しておきたい。複数のリージョンに接続する必要があっても、PEMなので単に結合すればいいだろう。