建立安全SSL连接PostgreSQL数据库服务器
当前物联网的挑战之一就是提供最高的安全级别。这就是为什么需要开启SSL连接到 PostgreSQL。

当你想要安全的存储数据到PostgreSQL数据中时,第一件事就是通过加密的连接保护身份认证凭证和存储数据被拦截。

下面,我们将对数据库服务器进行适当的调整,来开启SSL和生成证书。然后,在客户端机器上创建和添加证书,最后,通过pgAdmin 工具来建立到服务器是安全连接。让我们开始吧。

SSL双向认证和SSL单向认证的区别
双向认证 SSL 协议要求服务器和用户双方都有证书。单向认证 SSL 协议不需要客户拥有CA证书,服务器端不会验证客户证书,以及在协商对称密码方案,对称通话密钥时,服务器发送给客户的是没有加过密的(这并不影响 SSL 过程的安全性)密码方案。这样,双方具体的通讯内容,都是加过密的数据,如果有第三方攻击,获得的只是加密的数据,第三方要获得有用的信息,就需要对加密的数据进行解密,这时候的安全就依赖于密码方案的安全。而幸运的是,目前所用的密码方案,只要通讯密钥长度足够的长,就足够的安全。这也是我们强调要求使用128位加密通讯的原因。

一般Web应用都是采用SSL单向认证的,原因很简单,用户数目广泛,且无需在通讯层对用户身份进行验证,一般都在应用逻辑层来保证用户的合法登入。但如果是企业应用对接,情况就不一样,可能会要求对客户端(相对而言)做身份验证。这时就需要做SSL双向认证。

由于单向认证和双向认证的区别仅在于创建连接阶段,数据的传输均为加密的,因此客户端与PG服务端的连接采取SSL单向认证即可,即仅在PG Server端配置SSL证书。

PostgreSQL服务器配置
1. 首先连接到PG数据库服务器

2.为了让SSL工作起来,需要添加下面三个文件到 $PGDATA服务器目录:
server.key – 私钥。
server.crt – 服务器证书。
root.crt – 受信任的根证书。
提示:
这里我们不会详细解释命令的参数,但如果你需要更深入的了解,可以只参考本文中的 Self-Signed Custom SSL或在官方站点OpenSSL查询更详细的说明;
你也可以使用 你也可以同样使用自定义SSL(custom SSL )证书 ,描述如下 (按照 生成自定义的SSL证书 部分的指导实现)。 在后者情况下,你可以直接跳过生成指令,直接跳转到第六步的指令

3.首先,让我们创建第一个文件—-私钥:
openssl genrsa -des3 -out server.key 1024

在生成server.key文件的过程中,它会要求输入密码— 随意输入并确认。
现在,为了在以后使用这个key,你需要删除在上面添加的密码。通过如下命令实现:

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

再次输入密码来确认。
为私钥文件设置适当的权限和所有权,使用如下命令:

chmod 400 server.key
chown ec2-user:ec2-user server.key

4. 接下来,您需要创建基于server.key文件的服务器证书, 如下:
openssl req -new -key server.key -days 3650 -out server.crt -x509

也可以通过-subj命令指定
openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj ‘/C=US/ST=California/L=PaloAlto/O=Jelastic/CN=mysite.com/ema ilAddress=mail@jelastic.com’
参数来设置你的个人资料:

5.为了得到自己签名的证书,把生成的服务器证书作为受信任的根证书,只需要复制并取一个合适的名字
cp server.crt root.crt

现在,三个证书文件都有了,接下来就可以处理激活SSL以及使用它的PostgreSQL 数据库配置了

6.配置postgres.conf和pg_hba.conf文件
修改ssl mode 为on,设置ssl_ca_file为root.crt

修改pg_hba.conf文件,新增ssl认证连接的规则

7.重启数据库,规则生效

建立安全SSL连接PostgreSQL数据库服务器的更多相关文章

  1. typescript-koa-postgresql 实现一个简单的rest风格服务器 —— 连接 postgresql 数据库

    接上一篇,这里使用 sequelize 来连接 postgresql 数据库 1.安装 sequelize,数据库驱动 pg yarn add sequelize sequelize-typescri ...

  2. msf连接PostgreSQL数据库

    一.启动PostgreSQL服务######################################################################?root@root:~# ...

  3. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  4. 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...

  5. Entity Freamwork 6连接PostgreSql数据库

    原文 Entity Freamwork 6连接PostgreSql数据库 开发环境 VS 2015  Update 1   Postgre Sql 9.4 使用过程 1.使用Nuget在项目中添加对E ...

  6. Abp.NHibernate连接PostgreSQl数据库

    Abp.NHibernate动态库连接PostgreSQl数据库 初次接触Abp框架,其框架中封装的操作各类数据的方法还是很好用的,本人还在进一步的学习当中,并将利用abp.NHibernate类库操 ...

  7. SQLServer 2005客户端远程连接sql2008 数据库服务器

    SQL2005客户端远程连接sql2008 数据库服务器 by:授客 QQ:1033553122 准备工作: 客户端所在pc机配置: 配置数据源 控制面板-管理工具-ODBC数据源-系统DSN-添加- ...

  8. powerdesigner连接postgresql数据库生成pdm及word文档

    1.准备软件: powerdesigner165与postgresql的驱动:psqlodbc_11_01_0000 2.安装并破解完成powerdesigner165 参看链接:https://ww ...

  9. python连接postgresql数据库

    python可以通过第三方模块连接postgresql. 比较有名的有psycopg2  和python3-postgresql (一)psycopg2 ubuntu下安装 sudo apt-get ...

随机推荐

  1. .NET Core/.NET5/.NET6 开源项目汇总9:客户端跨平台UI框架

    系列目录     [已更新最新开发文章,点击查看详细] .NET Core 实现了跨平台,支持在 Windwos.Linux.macOS上开发与部署,但是也仅限于Web应用程序.对于Windows桌面 ...

  2. Vue(12)组件的组织结构和组件注册

    组件的组织 通常一个应用会以一棵嵌套的组件树的形式来组织: 例如,你可能会有页头.侧边栏.内容区等组件,每个组件又包含了其它的像导航链接.博文之类的组件. 为了能在模板中使用,这些组件必须先注册以便 ...

  3. JS 使用try catch捕获异常

    JS 使用try catch捕获异常 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 前端是攻克客户的先锋,需要特别注意到 ...

  4. python用random模块模拟抽奖逻辑(print修改end参数使打印结果不分行)

    import random   #引入random模块,运用random函数list_one=["10081","10082","10083" ...

  5. 重新整理 .net core 实践篇————熔断与限流[三十五]

    前言 简单整理一下熔断与限流,跟上一节息息相关. 正文 polly 的策略类型分为两类: 被动策略(异常处理.结果处理) 主动策略(超时处理.断路器.舱壁隔离.缓存) 熔断和限流通过下面主动策略来实现 ...

  6. Redis big key处理

    bigkey是指key对应的value所占的内存空间比较大,例如一个字符串类型的value 可以最大存到512MB,-个列表类型的value最多可以存储2^32-1个元素.如果按照数据结构来细分的话, ...

  7. ORA-12560: 解决TNS:协议适配器错误

    1)安装成功,但无法连接数据库 2)网上查找原因:32位的不能运行64位的oracle,而且不会有64位的版本 3)解决办法:大致是修改客户端数据库为32位的(此方法OK) (1)解压instantc ...

  8. Binding(五):多路绑定

    Binding不止能绑定一个源,它还能绑定多个源,这就是我们这节要讲的多路绑定:MultiBinding. 使用多路绑定跟一般的绑定还是有区别的,首先它并不能很好的在标记扩展中使用,另外,使用多路绑定 ...

  9. 合并N个长度为M的有序数组为一个N*M的有序数组

    题目:合并N个有序数组,每个数组的长度为M,合并为N*M的有序数组.时间复杂度要求最低 解法:N个数组进行两两合并,合并后的数组再继续执行合并过程,最后合成N*M的有序数组.可以认为合并这个递归过程发 ...

  10. python链接postgresql

    #需要安装的库 sudo apt-get install build-dep python-psycopg2 pip install psycopg2 #!/usr/bin/python # -*- ...