sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLでSSLを有効にする方法

    PostgreSQLは、ユーザーがデータベースに安全に接続できるようにするSSL接続をサポートしています。この記事では、PostgreSQLデータベースでSSLを有効にする方法を見ていきます。


    PostgreSQLでSSLを有効にする方法

    PostgreSQLでSSL接続を有効にする手順は次のとおりです。 PostgreSQLサーバーでは、SSL構成のためにデータディレクトリに3つの証明書が必要です。それらは:

    • root.crt (信頼されたルート証明書)
    • server.crt (サーバー証明書)
    • server.key (秘密鍵)

    ターミナルを開き、次のコマンドを実行してrootとして実行します

    $ sudo -
    $ cd /var/lib/pgsql/data

    opensslを使用して秘密鍵を生成します。パスフレーズの入力を求められます。

    $ openssl genrsa -des3 -out server.key 1024

    パスフレーズを削除する

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

    ボーナスリード:フォローするトップデータベースブログ

    ファイルのアクセス許可と秘密鍵ファイルの所有権を更新します。

    $ chmod 400 server.key
    $ chown postgres.postgres server.key

    同様に、サーバー証明書を作成します

    $ openssl req -new -key server.key -days 3650 -out server.crt -x509

    上記のステートメントで、-x509は自己署名証明書を示します。電子メール、国などの詳細の入力を求められます。入力して、証明書の生成を完了してください。

    自己署名証明書を使用しているため、サーバーキーをルート証明書として使用します。

    $ cp server.crt root.crt

    pg_hba.confを更新して、次の行を追加します

    # IPv4 remote connections for authenticated users 
    hostssl all www-data 0.0.0.0/0 md5 clientcert=1
    hostssl all postgres 0.0.0.0/0 md5 clientcert=1

    postgresql.confを編集して、次の行を追加します

    ssl = on

    PostgreSQLサーバーを再起動します

    $ /etc/init.d/postgresql restart

    ボーナスリード:PostgreSQLで最大接続数を増やす方法

    PostgreSQLクライアントでSSLを有効にする

    PostgreSQLクライアントでSSLを有効にするには3つのファイルも必要です。 〜/.postgresql/に保存します ディレクトリ

    • root.crt (信頼されたルート証明書)
    • postgresql.crt (クライアント証明書)
    • postgresql.key (秘密鍵)

    postgresql.keyを作成します クライアントマシンでパスフレーズを削除します。

    $ openssl genrsa -des3 -out /tmp/postgresql.key 1024
    $ openssl rsa -in /tmp/postgresql.key -out /tmp/postgresql.key

    ボーナスリード:PostgreSQLパフォーマンスチューニングのヒント

    次に、postgresql.crtを作成し、信頼されたルート(サーバーからの秘密鍵ファイル)を使用して署名します。 注意 、証明書の共通名(CN)の入力を求められたら、データベース名に設定します。

    $ openssl req -new -key /tmp/postgresql.key -out /tmp/postgresql.csr
    $ openssl x509 -req -in server.req -out /tmp/postgresql.csr -CA root.crt -CAkey server.key -out /tmp/postgresql.crt -CAcreateserial

    サーバーの/tmpディレクトリに作成された3つのファイルをクライアントマシンにコピーします。 root.crtをサーバーの/tmpディレクトリからクライアントの〜/ .postgresql /にコピーします ディレクトリ。

    この記事がPostgreSQLでSSLを有効にするのに役立つことを願っています。

    1. MySQLで毎日のアクティブユーザー(DAU)を計算する方法

    2. MySQLのVALUESステートメント

    3. SQL DELETE構文–DBMSによってリストされます

    4. R12.2について知っておくべき40の質問