最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PostgreSQL數(shù)據(jù)庫配置SSL操作的實現(xiàn)方法

 更新時間:2025年07月17日 10:02:41   作者:不懂說話的猿  
本文主要介紹了PostgreSQL數(shù)據(jù)庫配置SSL操作,通過開啟SSL證書認(rèn)證的方式加強防護(hù),配合使用防火墻策略白名單方式、增加密碼復(fù)雜度,感興趣的可以了解一下

背景:

因為postgresql或者mysql目前通過docker安裝,只需要輸入主機IP、用戶名、密碼即可訪問成功,這樣其實是不安全的,可能會通過一些手段獲取到用戶名密碼導(dǎo)致數(shù)據(jù)被竊取。而ES、kafka等也是通過用戶名/密碼方式連接,但是這些數(shù)據(jù)重要性相比較于數(shù)據(jù)庫要低一些,畢竟都是一些日志以及消息而已。

解決方案:

通過開啟SSL證書認(rèn)證的方式加強防護(hù),配合使用防火墻策略白名單方式、增加密碼復(fù)雜度。本文檔主要是介紹開啟SSL認(rèn)證方式。

一、創(chuàng)建目錄存儲配置信息

1、mkdir   /postgre 
2、進(jìn)入 文件夾
cd postgre
3、創(chuàng)建目錄 
mkdir certs
4、創(chuàng)建目錄 
mkdir data

二、創(chuàng)建Openssl配置文件

1、進(jìn)入cd /postgre/certs 目錄
2、執(zhí)行 touch openssl.cnf
3、修改文件
   vim openssl.cnf
4、將下面信息粘貼至文件中
[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
prompt             = no

[ req_distinguished_name ]
C  = CN
ST = Beijing
L  = Beijing
O  = MyOrg
OU = IT
CN = postgres
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
IP.1 = 192.168.2.1  #數(shù)據(jù)庫主機地址
DNS.1 = postgres    #數(shù)據(jù)庫用戶名

如下圖:

三、創(chuàng)建SSL證書生成腳本generate_certs.sh

1、進(jìn)入 cd /postgre/certs 目錄
2、touch  generate_certs.sh
3、vim generate_certs.sh
4、將下面信息粘貼至文件中
#!/bin/bash
ROOT_KEY="root.key"
ROOT_CRT="root.crt"
SERVER_KEY="server.key"
SERVER_CSR="server.csr"
SERVER_CRT="server.crt"
DAYS=365
BITS=2048

echo "生成根私鑰..."
openssl genpkey -algorithm RSA -out "$ROOT_KEY"

echo "生成根證書..."
openssl req -x509 -new -nodes -key "$ROOT_KEY" -sha256 -days "$DAYS" -out "$ROOT_CRT" -subj "/C=CN/ST=Beijing/L=Beijing/O=Example Root CA/OU=IT Department/CN=postgres"

echo "生成服務(wù)器私鑰..."
openssl genpkey -algorithm RSA -out "$SERVER_KEY"

echo "生成證書簽名請求 (CSR)..."
openssl req -new -key "$SERVER_KEY" -out "$SERVER_CSR" -config openssl.cnf

echo "使用根證書簽署服務(wù)器證書..."
openssl x509 -req -in "$SERVER_CSR" -CA "$ROOT_CRT" -CAkey "$ROOT_KEY" -CAcreateserial -out "$SERVER_CRT" -days 365 -extfile openssl.cnf

echo "驗證服務(wù)器證書..."
openssl verify -CAfile "$ROOT_CRT" "$SERVER_CRT"

echo "生成完成!以下是生成的文件:"
ls -l "$ROOT_KEY" "$ROOT_CRT" "$SERVER_KEY" "$SERVER_CSR" "$SERVER_CRT"

如圖:

四、創(chuàng)建配置證書目錄以及生成證書

1、執(zhí)行cd /postgre/certs
2、執(zhí)行sh generate_certs.sh 運行該腳本
3、如下圖代表生成成功
4、查看生成的證書

五、為證書目錄賦權(quán)限,以便postgre容器可以訪問執(zhí)行這些證書

1、cd /postgre
2、chmod 777 certs
3、chmod 777 data
2、chown 999:999 certs/* 之所以所屬用戶/組設(shè)置為999 是因為postgre默認(rèn)進(jìn)程所屬就是999。
3、chmod 600 certs/* 為證書目錄設(shè)置為所屬用戶可讀可寫,如果權(quán)限過大會在連接數(shù)據(jù)庫時報錯!

六、創(chuàng)建配置文件postgresql.conf

1、進(jìn)入 cd  /postgre
2、執(zhí)行 touch postgresql.conf 命令
3、執(zhí)行 vim postgresql.conf 命令
4、復(fù)制如下配置信息到文件中
ssl = on                                              #開啟SSL認(rèn)證                                                                                                                                                                     
ssl_cert_file = '/var/lib/postgresql/certs/server.crt'         #服務(wù)器證書路徑                                                                                                                                                            
ssl_key_file = '/var/lib/postgresql/certs/server.key'         #密鑰路徑                                                                                                                                                             
ssl_ca_file = '/var/lib/postgresql/certs/root.crt'             #根證書路徑                                                                                                                                                            
listen_addresses = '*'                                   #監(jiān)聽所有                                                                                                                                                                  
ssl_min_protocol_version = 'TLSv1.2'                     #SSL等級最小為1.2                                                                                                                                                                  
logging_collector = on                                   # 開啟日志                                                                                                                                                                  
log_directory = 'log'                                                                                                                                                                                                      
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'                                                                                                                                                                            
log_rotation_age = 1d  # 日志文件保留一天后輪換                                                                                                                                                                            
log_rotation_size = 10MB  # 當(dāng)日志文件達(dá)到10MB時輪換                                                                                                                                                                       
log_min_messages = debug  # 記錄警告級別及以上的消息                                                                                                                                                                       
log_connections = on  # 記錄連接嘗試                                                                                                                                                                                       
log_disconnections = on  # 記錄斷開連接 

如下圖

七、創(chuàng)建配置文件pg_hba.conf

1、cd /postgre
1、執(zhí)行 touch pg_hba.conf 命令
2、執(zhí)行 vim pg_hba.conf 命令
3、復(fù)制如下配置信息到文件中
hostssl  all  all  0.0.0.0/0  cert  clientcert=1     

如下圖

八、安裝并啟動PostgreSQl

1、安裝postgreSQL 13.3版本 
鏡像會提供給運維。
2、啟動postgreSQL容器
docker run -d --name my-postgres-ssl -p 5432:5432  -e POSTGRES_PASSWORD=xxxx  -v /postgre/postgresql.conf:/etc/postgresql/postgresql.conf -v /postgre/certs:/var/lib/postgresql/certs -v /postgre/data:/var/lib/postgresql/data  b2fcd079c1d4 -c 'config_file=/etc/postgresql/postgresql.conf'

其中 -e POSTGRES_PASSWORD=password 為數(shù)據(jù)庫設(shè)置密碼為 “password” 默認(rèn)用戶名為 “postgres”

其中 -v /postgre/postgresql.conf:/etc/postgresql/postgresql.conf  將宿主機的配置文件掛載到容器中。

其中 -v /postgre/certs:/var/lib/postgresql/certs 為數(shù)據(jù)庫映射證書目錄 將宿主機中的證書目錄掛載到容器中 前面為宿主機目錄 后面為容器中目錄??晒潭▽懰?。

其中 -v /postgre/data:/var/lib/postgresql/data  為數(shù)據(jù)庫映射數(shù)據(jù)存儲目錄。
其中 -c 'config_file=/etc/postgresql/postgresql.conf' 強制數(shù)據(jù)庫使用自定義的配置文件,忽略系統(tǒng)內(nèi)置的配置信息 后面會介紹如何編寫postgresql.conf文件。

九、替換容器中的pg_hba.conf配置文件

1、查詢 容器id  執(zhí)行 
docker ps --filter "name=my-postgres-ssl" --format "{{.ID}}"
2、將配置文件復(fù)制容器中
docker cp /postgre/pg_hba.conf 容器ID:/var/lib/postgresql/data
3、重啟docker容器
docker restart 容器ID
4、查看運行日志
docker logs -f --tail 200 容器ID
5、如圖則運行成功

十、使用客戶端連接數(shù)據(jù)庫 此處使用Navicat

其中SSL配置中 客戶端密鑰 上傳 server.key
                客戶端證書 上傳 server.crt
                根證書     上傳 root.crt
點擊【測試鏈接】

到此這篇關(guān)于PostgreSQL數(shù)據(jù)庫配置SSL操作的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)PostgreSQL配置SSL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

吴堡县| 出国| 大关县| 桃江县| 逊克县| 诏安县| 新密市| 曲松县| 广西| 苏州市| 开封县| 明溪县| 丰顺县| 金阳县| 日土县| 普兰县| 随州市| 洛南县| 正宁县| 卢龙县| 门源| 南涧| 盘山县| 扎赉特旗| 遵义市| 三门峡市| 淮滨县| 安仁县| 忻州市| 新龙县| 文成县| 观塘区| 固始县| 墨玉县| 宜都市| 南召县| 彭阳县| 井冈山市| 承德县| 曲阜市| 墨脱县|