RDSの証明書機関更新対応

# RDSの証明書機関更新対応についてのメール

* AWSからRDSのSSL認証機関を変更するから対応して下さいとのメールが再三きていた（2019年12月）
* メールやリンク先の説明がやたら長く分かりづらいので超簡潔にまとめた
* 内容は以下の通り(翻訳）

```

件名：Update Your Amazon RDS SSL/TLS Certificates by October 31, 2019

こんにちは、

RDSとオーロラ・データベース・インスタンスを使用して、アプリケーションの今後の中断に対処するために2019年10月31日の前に行動してください。

RDSデータベースインスタンスを使用して通信を保護するために、認証局（CA）は、情報を交換する前に、RDSデータベースインスタンス（複数可）を認証するために、データベースクライアントソフトウェアによって確認されている期限付き証明書を生成します。業界のベストプラクティスに続いて、AWSは、CAを更新し、RDSの顧客の接続が正しく、今後数年間のために保護されることを保証するために定期的に新しい証明書を作成します。現在のCAは、現在のCAを参照する証明書を持つ既存のRDSデータベースインスタンスへの更新を必要とする、2020年3月5日に期限が切れます

あなたはAP-NORTHEAST-1、AP-NORTHEAST-2、AP-SOUTHEAST-1、AP-SOUTHEAST-2地域（複数可）にアマゾンRDSデータベースインスタンス（複数可）を持っているため、このメッセージが表示されます。あなたのアプリケーションがセキュアソケットレイヤー（SSL）またはトランスポート層セキュリティ（TLS）プロトコルを使用して、それらのインスタンスに接続する場合は、あなたの更新（複数可）を完了するために、下のリンクで詳細な手順に従ってください。完了していない場合は、あなたのアプリケーションは2020年3月5日後にSSL / TLSを使用して、DBインスタンスへの接続に失敗します。

私たちは、本番環境でそれらを実装する前に、開発やステージング環境内でこれらの手順をテストすることをお勧めします。今日からは、あなたの既存のRDSデータベースインスタンスをテストし、更新を開始することができます。詳細については、下記をご覧ください： https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html

2019年11月1日後に作成された新しいRDSインスタンスは、新しい証明書を使用してにデフォルト設定されます。あなたは一時的に古い（RDS-CA-2015）証明書を使用して手動で新しいインスタンスを変更したい場合は、AWSコンソールやAWS CLIを使用して行うことができます。あなたはRDS-CA-2019のバージョンにそれらを更新するまでの任意のインスタンスは、前2019年11月1日に作成されたRDS-CA-2015の証明書を持っています。

：ご質問や問題がある場合は、AWSでのサポートにお問い合わせくださいhttps://aws.amazon.com/support

敬具
Amazon Webサービス
```

### 全文要約

* RDSへのSSL接続がつながらなくなるかもしれないから早めに対応してね

### やるべきと記載されている事要約

1. RDS側の認証機関を"rds-ca-2015"から"rds-ca-2019"にアップデートする
2. クライアント側でRDSにSSL接続している場合、クライアント側のルート証明書を"rds-ca-2019"に適合したものに差し替えて接続

### 実際やること要約（私の場合）
1. RDS側の認証機関を"rds-ca-2015"から"rds-ca-2019"にアップデートする
2. クライアント側でRDSにSSL接続していないので弊社の場合は基本的にはやることはない。

### RDS側の対応

* インスタンスの詳細を確認すると現在の認証機関は"rds-ca-2015"であることがわかる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57350/2502733c-09ea-160b-5afb-01c28d9589a6.png)

* RDSメニューに入ると「CertificateUpdate」が赤くなっており、画面上部に2020年2月5日までに対応して下さいとの警告が出力されている
* ”保留中のメンテナンスアクションを表示”を押す

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57350/1a70ddf7-5583-caf6-60e2-13b3f0d3ccc5.png)



* 更新が必要なDBインスタンスが表示される

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57350/d2f61be5-41f7-b15a-27b1-ca3aa91fe4a3.png)

* インスタンスを選択し「今すぐ更新」をクリック
* 「今すぐ更新」が難しい場合、サービスの状況に合わせて「次のメンテナンスウィンドウで更新」を選ぶ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57350/784158d4-f517-954c-db81-7789eee01109.png)

* 更新が終わると「更新が必要なデータベース」に対象がなくなる
* 十数秒で終わる
* 開発環境などで試してからのほうが安全

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57350/30dff152-66cc-4e59-c126-d5a8ee6f59e9.png)

* インスタンス詳細の認証機関が"rds-ca-2019"に更新されている

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57350/8b9d60bf-ab36-4d44-5507-fffc9c564977.png)

### クライアント側の対応

* アプリケーションからSSL接続していなかったので特に必要なし
* 確認したい場合は"rds-ca-2019"に対応したルート証明書をダウンロードする[ダウンロード先](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL.html)
* このルート証明書を利用して"rds-ca-2019"に変更されたRDSに対して接続する
* 開発アプリケーションから接続してみる
* 簡単に試すには以下のようにmysqlクライアントで証明書を指定して接続してみる

```
mysql -h <インスタンス接続先> --ssl-ca=/dir/rds-ca-2019-root.pem --ssl-verify-server-cert -P 3306 -u <ユーザー名> -p
```