web-dev-qa-db-ja.com

証明書バンドルを使用してSSL証明書を設定するにはどうすればよいですか?

MySQLデータベースコマンドラインクライアントからAWS上のMySQLデータベースインスタンスへの暗号化された接続をセットアップしようとしています。

AWSは、すべてのサーバーのすべての証明書を持っているように見える証明書バンドルを提供しました。

MySQLドキュメント OpenSSLを使用したSSL証明書とキーの作成 これを行う必要があると述べています:

(1)CA証明書を作成する

openssl genrsa 2048 > ca-key.pem

openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem

(2)サーバー証明書を作成し、パスフレーズを削除して署名します。

server-cert.pem =公開鍵

server-key.pem =秘密鍵

openssl req -newkey rsa:2048 -days 3600 \
     -nodes -keyout server-key.pem -out server-req.pem

openssl rsa -in server-key.pem -out server-key.pem

openssl x509 -req -in server-req.pem -days 3600 \
     -CA ca.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

(3)クライアント証明書を作成し、パスフレーズを削除して署名します。

client-cert.pem =公開鍵

client-key.pem =秘密鍵

openssl req -newkey rsa:2048 -days 3600 \
        -nodes -keyout client-key.pem -out client-req.pem

openssl rsa -in client-key.pem -out client-key.pem

openssl x509 -req -in client-req.pem -days 3600 -CA  ca.pem \
     -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

openssl verify -CAfile ca.pem server-cert.pem client-cert.pem

私は既に持っています ca.pem(rds-combined-ca-bundle.pem)AWSから。

したがって、手順(1)と(2)をスキップする必要があります。

サーバーの公開鍵を持っていますかca-key.pem AWSバンドル内?

もしそうなら、どのようにそれを使用してステップ(3)を完了するのですか?

AWS docs-'MySQL DBインスタンスのSSLサポート ' は特にまばらで、次のように言います。

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com
    -u my-user -p
    --ssl-ca=rds-combined-ca-bundle.pem --ssl-verify-server-cert

パスワードの入力を求められますが、ハングします。

[〜#〜]更新[〜#〜]

MySQLWorkbenchとJava JDBC接続プール)の接続をすでにセットアップして機能させています。telnetサニティテストでは、MySQLサーバーに到達できることが示されています。

1
Adam

自分でSSL証明書を生成する必要はありません。ドキュメントに記載されているように、mysqlパラメータで提供されているrds-combined-ca-bundle.pemを使用するだけです。

1
AlexD

結局のところ、それは証明書とは何の関係もありませんでした。 SO)を必死に検索すると、答えが得られました: CygwinからMySQLに接続

CygwinとWindowsMySQLクライアントは一緒にうまく機能しません。

0
Adam