タグ別アーカイブ: RDS

AWS RDS上のOracle XML DBに複数のxmlデータを投入する

| コメントをどうぞ

前記事 AWS RDS上のOracle XML DBにxmlデータを投入し、参照する の投入のサンプルアプリを改造し、複数のxmlデータを投入するツールを作成した。これでxmlデータを投入し、後日クエリーの検証を行います。
続きを読む

EC2上のTomcatからRDSにSSL接続する方法

| コメントをどうぞ

今回はAWSのEC2にインストールしたTomcatから、RDS(MySQL)にSSLで接続する方法を紹介します。

準備

  • EC2インスタンス(Linux) *1
  • RDSインスタンス *1
  • EC2インスタンスにTomcatをインストールしておく
  • RDSインスタンスのセキュリティグループで、EC2インスタンスからのアクセスを許可しておく

以下のサイトを参考にして設定を行ったところ、SSL接続に成功しました。

Amazon RDS に SSL 接続する (JDBC編)
http://blog.cles.jp/item/5349


以下手順です。

まずはMySQLのクライアントからRDSに接続します。
以下のコマンドを実行して、任意のユーザからはSSL接続のみ許可します。

# mysql -u root -p -h ***.***.ap-northeast-1.rds.amazonaws.com
mysql> GRANT ALL PRIVILEGES ON dbuser.* TO dbuser@"%" IDENTIFIED BY 'mysqlpassword' REQUIRE SSL;


次にAmazonから証明書を取得します。
Amazonから配布される証明書はPEM形式であるため、JKS形式に変換する必要があるようです。

# wget https://rds.amazonaws.com/doc/mysql-ssl-ca-cert.pem
# /usr/java/default/bin/keytool -keystore amazon.jks -importcert -file mysql-ssl-ca-cert.pem
パスワードを2回入力(ここでは jkspassword とします)
・
・
・
Trust this certificate? [no]:  yes(yesと入力してEnter)
Certificate was added to keystore
#


作成したJKSファイルを任意のフォルダに移動します。

# mkdir /opt/jks
# mv amazon.jks /opt/jks


最後にTomcatのサーバーのserver.xmlまたはコンテキストファイルでDBとの接続設定をします。

<Resource name="jdbc/testDB" auth="Container"
           type="javax.sql.DataSource"
           username="dbuser"
           password="mysqlpassword"
           driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://***.***.ap-northeast-1.rds.amazonaws.com:3306/dbName?useUnicode=true&characterEncoding=UTF-8&useSSL=true&requireSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:///opt/jks/amazon.jks&trustCertificateKeyStoreType=JKS&trustCertificateKeyStorePassword=jkspassword"
/>


SSLに関係しているURLのパラメータは以下です。

useSSL=true
requireSSL=true
verifyServerCertificate=true
trustCertificateKeyStoreUrl=file:///opt/jks/amazon.jks  #作成したJKSファイルのパス
trustCertificateKeyStoreType=JKS  #JKS形式を指定
trustCertificateKeyStorePassword=jkspassword  #JKS作成時に設定したパスワード