pgsql使用OpenSSL添加ssl加密

news/2024/7/9 19:31:26 标签: postgresql, pg, openssl, ssl, 加密

ssl>openssl.md

服务端

  • 查看当前目录 ssl>openssl version -d
  • 生成签名的key
ssl>openssl req -new -text -out server.req -subj '/C=CN/ST=Zhejiang/L=Hangzhou/O=dbpaas/CN=dbpaas-ip-port' -passout pass:'xxx'

    -passourt  意思是对输出文件的加密密码
  • 删除passphrase
ssl>openssl rsa -in privkey.pem -out server.key  -passin pass:'xxx'
        -passin  这里是设置输入文件需要的密码
rm -f privkey.pem
  • turn the certificate into a self-signed certificate and to copy the key and certificate to where the server will look for them
ssl>openssl req -x509 -in server.req -text -key server.key -out server.crt
  • 修改权限
chmod 600 server.key
  • 拷贝
mv -f server.crt server.key $PGDATA
  • 修改参数
ssl = on 
ssl_cert_file = 'server.crt'              # (change requires restart)
ssl_key_file = 'server.key' 

下面的不用改,pg默认
ssl_ciphers = 'DEFAULT:!LOW:!EXP:!MD5:@STRENGTH'        # allowed SSL ciphers
                                            # (change requires restart)
ssl_renegotiation_limit = 512MB   # amount of data between renegotiations
  • 重启数据库
pg_ctl restart -m fast

会有 SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
create extension sslinfo;
    CREATE EXTENSION
digoal=# select ssl_is_used();
 ssl_is_used 
-------------
 t
(1 row)
digoal=# select ssl_cipher();
     ssl_cipher     
--------------------
 DHE-RSA-AES256-SHA
(1 row)
digoal=# select ssl_version();
 ssl_version 
-------------
 TLSv1
(1 row)
  • 可以设置pg_hba.conf强制使用ssl连接数据库
    • 把以前的host改为hostssl这就是强制客户端使用ssl连接 eg: hostssl all all 0.0.0.0/0 md5
    • 使用host的话优先使用ssl认证
    • hostnossl 强制不使用ssl

客户端

  • 客户端也要有ssl>openssl包,然后客户端可以设置强制使用还是不使用ssl
psql "sslmode=require" -h 172.16.3.33 -p 1999 -U postgres -d pg

psql "sslmode=disable" -h 172.16.3.33 -p 1999 -U postgres -d pg

注意

  • 只在主库上创建就好了,只要用到basebackup的都会拷贝相关的这两个文件

参考: https://github.com/digoal/blog/blob/master/201305/20130522_01.md https://www.jianshu.com/p/15b1d935a44b


http://www.niftyadmin.cn/n/587060.html

相关文章

Tcl学习1——安装软件环境ActiveTcl

ActiveTcl介绍 ActiveState软件(http://www.activestate.com)是一个创建开发工具,为包括Tcl在内的一些动态语言提供服务和支持的公司。 除了他们的商业产品,还提供了一款免费的 Tcl预编译器,称为ActiveTcl,其中还打包进一些流行的…

MacOs——Docker 安装 ClickHouse单机版

安装clickhouse并设置用户密码。 https://blog.csdn.net/qq_43442524/article/details/112675445 常见异常:https://javapub.blog.csdn.net/article/details/121408493

Ubuntu 下MySQL数据库副本的备份和副本恢复的一种方式

使用mysqldump进行数据库副本的备份 #基本语法格式 shell> mysqldump [options] db_name [tbl_name ...] 恢复需要手动CRATE DATABASES shell> mysqldump [options] --databases db_name ... 恢复不需要手动创建数据库 shell> mysqldump [options] --all-databa…

clickhouse使用及常见异常 【已解决】

文章目录使用异常异常一解决:异常二异常三使用 clickhouse server 启动 ./clickHouse server --config/apps/clickhouse/config.xmlclickhouse client 启动 ./clickHouse client -h 127.0.0.1 -u zhangsan --password 123456异常 异常一 2021.11.18 11:39:28.0…

Tcl学习0——Tcl和Tk介绍

Tcl Tcl(tool command language)是一种用于控制和扩展应用程序的动态语言。 Tcl特点: 可嵌入的(embeded)(解释器是一个C函数库,很容易整合到应用程序中。)可扩展的(extensible)(任意应用程序…

vmware操作centos、hadoop、flink

Linux上安装Hadoop集群(CentOS7hadoop-2.8.0) https://blog.csdn.net/pucao_cug/article/details/71698903 本地主机如何访问虚拟机centos的web服务器、关闭防火墙 https://blog.csdn.net/liujingqiu/article/details/89310632 安装flink 下载解压即可(国内镜像…

关于页面中body onload 和 window.onload 冲突的问题的解决

1.使用attachEvent给onload添加所需运行的函数 if(document.all){window.attachEvent(onload, FuncName)}else{window.addEventListener(load, FuncName, false);} 2.使用window.onload function(){FuncName1(); FuncName();},直接onload两个函数。可以加一个判…

CSS样式之定位

1.定位的边偏移 top 顶端偏移量,定义元素相对于其父元素上边线的距离bottom 底部偏移量,定义元素相对于其父元素下边线的距离left 左侧偏移量,定义元素相对于其父元素左边线的距离right 右侧偏移量,定义元素相对于其父元素右…