11.1.?SSL

11.1.1. 概述
11.1.2. 证书
11.1.3. 启用SSL连接
11.1.4. 建立SSL连接
11.1.5. 其他

11.1.1.?概述

UXDB内在地支持客户端/服务器之间的SSL连接。为了使用SSL连接,下面几个前提条件是需要满足的:

  1. 首先需要UXDB在编译时支持SSL,目前澳门游戏平台注册网站的Linux和 Windows版本UXDB均满足这个要求。

  2. 客户端和服务器端均要安装OPENSSL。一般Linux系统已经安装了OPENSSL。Windows上如果没有安装的话,可以从网上下载OPENSSL的安装包进行安装。

启用SSL连接时,服务器和客户端之间可以进行相互认证。

一般情况下,是否建立SSL连接是客户端的选择。但是,也可以在服务器端修改配置文件ux_hba.conf,强制某些或者全部连接使用SSL。具体怎么设置可参照ux_hba.conf文件的说明。

11.1.2.?证书

客户端/服务器之间的身份认证依赖于证书。这里,澳门游戏平台注册网站首先生成自签名的证书,然后分别为服务器和客户端生成各自的证书和私钥。

  1. 证书存放位置

    服务器端

    CA的证书root.crt,服务器的证书和私钥server.crt和server.key都应该放在集群目录,例如集群路径是/home/uxdb/uxdbinstall/uxsql/bin/uxdb_00,服务器证书应该存放在同一目录uxdb_00下面。

    客户端

    客户端证书uxsinodb.crt ,私钥uxsinodb.key,以及认证服务器根证书root.crt应该放在:对于linux系统,位置是~/.uxsinodb目录;对于windows系统,位置是%APPDATA%\uxsinodb。

  2. 生成证书

    这里在服务器上生成所有的证书和私钥,这当然不是必须的。

    服务器生成证书和私钥

    进入集群目录:

    #cd uxdb_00

    生成RSA私钥:

    openssl genrsa -des3 -out server.key 1024

    为了在以后使用这个key,删除在上面添加的密码。通过如下命令实现:

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

    为您的私钥文件设置适当的权限和所有权:

    chmod 600 server.key

    需要创建基于server.key文件的服务器证书:

    openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj '/C=US/ST=California/L=PaloAlto/O=Jelastic/CN=mysite.com/emailAddress=mail@jelastic.com'

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

    cp server.crt root.crt
    客户端生成证书和私钥

    利用服务器CA证书,澳门游戏平台注册网站生成客户端的证书和私钥,当前目录仍是集群目录。

    生成客户端的证书请求和客户端的私钥:

    openssl req -new -nodes -text -out uxsinodb.csr -keyout uxsinodb.key -subj "/CN=192.168.1.100 "

    其中192.168.1.100是唯一标识客户端的标识符,这里取它的IP。

    修改权限:

    chmod og-rwx uxsinodb.key

    生成由CA签名的客户端证书:

    openssl x509 -req -in uxsinodb.csr -text -days 365 -CA root.crt -CAkey server.key -CAcreateserial -out uxsinodb.crt

    这里澳门游戏平台注册网站用CA的证书root.crt和CA的私钥server.key签署证书。

    最后,澳门游戏平台注册网站把uxsinodb.crt,uxsinodb.key和root.crt(服务器CA的证书)一起拷贝到客户端目录。

11.1.4.?建立SSL连接

可以用多种客户端建立连接,比如uxsql,uxdbAdmin等。以uxsql为例:

./uxsql -h 192.168.1.99

如果客户端指定目录下存放正确的证书和私钥,那么建立的连接就是SSL。

./uxsql -h 192.168.1.99 "sslmode=require"

这是建立ssl连接,启用加密,但是不进行服务器认证。

./uxsql -h 192.168.1.99 "sslmode=verify-ca"

启用加密,而且认证服务器的身份。

11.1.5.?其他

  1. linux上local连接无法使用SSL

    SSL是TCP/IP连接,如果是同一台linux电脑上运行客户端和服务器,那么是无法建立SSL连接的。

  2. 防火墙

    服务器必须允许在服务器监听端口上的TCP/IP连接,客户端才能连接数据库。 也可直接关闭防火墙。命令:

    systemctl stop firewalld
  3. 查看openssl配置文件的位置

    openssl version -d

    其中,OPENSSLDIR: "/etc/pki/tls"是配置文件的位置。

XML 地图 | Sitemap 地图