インストール

とりあえずCentOSとPostgreSQLをインストール。
CentOSインストール時にPostgreSQLを選択できます。(2015/1/17現在、PostgreSQLは9.2.7がデフォルトでインストールされます)
PostgreSQLがインストールされているかどうかを調べるには、

rpm -qa | grep postgres

でOK

PostgreSQLの設定

passwd postgres

でパスワード設定。

以下でデータベースシステムを初期化します。

cd /var/lib/pgsql
su postgres
initdb --encoding=UTF8 --no-locale --pgdata=/var/lib/pgsql/data

postgresql.confを編集します。

cd /var/lib/pgsql/data
vi postgresql.conf

#listen_addresses = ‘localhost’

listen_addresses = ‘*’
コメントアウトを外して、ここではすべてlistenしちゃうことにしてます。
【備忘録】Linuxの基本操作

続いてpg_hba.confを編集。

vi pg_hba.conf

host all all 192.168.10.0/24 md5
などなど、環境に合わせて、ファイルの末尾に足す。
必要ないのはコメントアウト。

PostgreSQL起動関連

CentOS 7ではinit.dがなくなって、systemctlが採用されました。

・サービスの起動と停止

systemctl (start|stop) postgresql.service

・自動起動の設定と解除

systemctl (enable|disable) postgresql.service

・稼働中のサービス確認には

systemctl list-units --type=service

参考資料:
RHEL 7 に採用される Systemctl コマンド
CentOS7で使われているsystemctlについて少しまとめた -Qiita

ここでは

systemctl start postgresql.service
systemctl enable postgresql.service

プロセスが動いてるか確認

ps -ef | grep postgres
su postgres
psql
select now();
\q
psql -U postgres -l

これで時間が表示されたり、データベースが表示されたりしたら、ちゃんと動いてます。

firewalldの設定

firewall-cmd --permanent --zone=public --add-service=postgresql
systemctl restart firewalld.service

参考資料:
Install PostgreSQL 9.3 on Fedora 20/19, CentOS/RHEL/SL 7/6.6/5.11
UnixPower on Networking | CentOS7 firewalldの設定

SSLで接続する

openssl req -new -text -out server.req

実行するといろいろ聞かれます。
最初にパスフレーズを入力。
あとはCountry NameにJPと答えるのと、「Common Name」にローカルホスト名を入力するだけで、あとはエンターキーを押していれば大丈夫です。

サーバーを自動起動させたい場合は、下記でパスフレーズを削除します。

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

既存のキーのロックを外すために、古いパスフレーズを入力します。

続いて下記実行。

openssl req -x509 -in server.req -text -key server.key -out server.crt

パーミッションとauthor、User Groupを変更するのを忘れずに。

chmod 0600 server.key
chown postgres:postgres server.crt server.key

これを/var/lib/pgsql/data($PGDATAで代替可能)にコピー。

mv ./server.key $PGDATA/server.key
mv ./server.crt $PGDATA/server.crt

同フォルダにpg_hba.confがあるので、

hostssl all all 192.168.1.0/24 md5

など、運用する環境に合わせて設定。

同フォルダのpostgresql.confで

#ssl=off

ssl=on

に変更。

PostgreSQLを再起動。

systemctl restart postgresql.service

これでSSLで接続できるはずです。

参考資料:
SSLによる安全なTCP/IP接続 | PostgreSQL 9.5.1文書

蛇足:posgresのパスワードがあかんって怒られてつなげられなかったら

su postgres
psql
ALTER USER postgres password 'ここにパスワード';