欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

背景:

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

解決方案:

通過開啟SSL證書認(rèn)證的方式加強(qiáng)防護(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ù)庫主機(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  將宿主機(jī)的配置文件掛載到容器中。

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

其中 -v /postgre/data:/var/lib/postgresql/data  為數(shù)據(jù)庫映射數(shù)據(jù)存儲目錄。
其中 -c 'config_file=/etc/postgresql/postgresql.conf' 強(qiáng)制數(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)文章

  • 解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問題

    解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問題

    這篇文章主要介紹了解決sqoop import 導(dǎo)入到hive后數(shù)據(jù)量變多的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL的擴(kuò)展dict_int應(yīng)用案例解析

    PostgreSQL的擴(kuò)展dict_int應(yīng)用案例解析

    dict_int擴(kuò)展為PostgreSQL提供了專業(yè)的整數(shù)文本處理能力,特別適合需要精確處理數(shù)字內(nèi)容的搜索場景,本文給大家介紹PostgreSQL的擴(kuò)展dict_int實際應(yīng)用案例,感興趣的朋友一起看看吧
    2025-07-07
  • PostgreSQL創(chuàng)建新用戶所遇見的權(quán)限問題以及解決辦法

    PostgreSQL創(chuàng)建新用戶所遇見的權(quán)限問題以及解決辦法

    這篇文章主要給大家介紹了關(guān)于PostgreSQL創(chuàng)建新用戶所遇見的權(quán)限問題以及解決辦法, 在PostgreSQL中創(chuàng)建一個新用戶非常簡單,但可能會遇到權(quán)限問題,需要的朋友可以參考下
    2023-09-09
  • postgresql邏輯復(fù)制的實現(xiàn)

    postgresql邏輯復(fù)制的實現(xiàn)

    本文介紹PostgreSQL邏輯復(fù)制實現(xiàn),基于發(fā)布訂閱模型,需設(shè)置WAL_LEVEL為logical,支持跨庫備份,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-06-06
  • PostgreSQL設(shè)置主鍵自增的方法詳解

    PostgreSQL設(shè)置主鍵自增的方法詳解

    在使用Mysql時,創(chuàng)建表結(jié)構(gòu)時可以通過關(guān)鍵字auto_increment來指定主鍵是否自增,但在Postgresql數(shù)據(jù)庫中,雖然可以實現(xiàn)字段的自增,但從本質(zhì)上來說卻并不支持Mysql那樣的自增,所以本文給大家介紹了PostgreSQL如何設(shè)置主鍵自增,需要的朋友可以參考下
    2024-08-08
  • Windows下Postgresql數(shù)據(jù)庫的下載與配置方法

    Windows下Postgresql數(shù)據(jù)庫的下載與配置方法

    這篇文章主要介紹了Windows下Postgresql數(shù)據(jù)庫的下載與配置方法 ,需要的朋友可以參考下
    2014-06-06
  • PostgreSQL數(shù)據(jù)類型格式化函數(shù)操作

    PostgreSQL數(shù)據(jù)類型格式化函數(shù)操作

    這篇文章主要介紹了PostgreSQL數(shù)據(jù)類型格式化函數(shù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • PostgreSQL如何查詢表大小(單獨查詢和批量查詢)

    PostgreSQL如何查詢表大小(單獨查詢和批量查詢)

    PostgreSQL提供了多個系統(tǒng)管理函數(shù)來查看表,索引表空間及數(shù)據(jù)庫的大小,這篇文章主要給大家介紹了關(guān)于PostgreSQL如何查詢表大小的相關(guān)資料,文中介紹的方法包括單獨查詢和批量查詢,需要的朋友可以參考下
    2024-02-02
  • postgreSQL自動生成隨機(jī)數(shù)值的實例

    postgreSQL自動生成隨機(jī)數(shù)值的實例

    這篇文章主要介紹了postgreSQL自動生成隨機(jī)數(shù)值的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 在postgresql中結(jié)束掉正在執(zhí)行的SQL語句操作

    在postgresql中結(jié)束掉正在執(zhí)行的SQL語句操作

    這篇文章主要介紹了在postgresql中結(jié)束掉正在執(zhí)行的SQL語句操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論