替换代理证书

代理使用预安装的证书颁发机构 (CA) 证书。您可以将首选证书及其私钥复制到主机来替换它。

查看您当前的代理证书:

$ openssl s_client -prexit -connect database_IP:database_port

生成证书

如果您还没有证书,您可以生成自签名证书。有关详细信息,请参阅 生成 TLS 证书和密钥

  1. 生成私钥和证书。

    $ openssl req -new -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out agent.cert -keyout agent.key
    
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:US
    State or Province Name (full name) [Some-State]:MA
    Locality Name (eg, city) []:Cambridge
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
    Organizational Unit Name (eg, section) []:IT
    Common Name (e.g. server FQDN or YOUR name) []:*.mycompany.com
    Email Address []:myaddress@mycompany.com
    
  2. 制作 PEM 格式的证书副本。

    $ openssl x509 -in agent.cert -out agent.pem -outform PEM
    
  3. 查看证书。

    $ openssl x509 -in agent.pem -text
    

替换主机上的代理证书

以下过程用于在单个主机上替换代理的当前私钥和证书。要在整个群集中替换此证书和密钥,请对所有主机重复此过程。

  1. 停止主机上的代理服务。

    $ /etc/init.d/vertica_agent stop
    
  2. 备份并重命名现有代理证书和密钥。

    
    $ cd /opt/vertica/config/share
    $ mv agent.cert agent.cert.bck
    $ mv agent.key agent.key.bck
    $ mv agent.p em agent.pem.bck
    
  3. 将新证书和密钥传输到主机的 /opt/vertica/config/share 目录。

    $ scp agent.* root@123.12.12.123:/opt/vertica/config/share
    
  4. 将证书和密钥的所有者更改为 uidbadmin,将组更改为 verticadba

    $ chown installed_Vertica_user:installed_Vertica_group agent.*
    
  5. 将证书和密钥文件设为只读。

    $ chmod -R 400 agent.*
    
  6. 启动代理服务。

    $ /etc/init.d/vertica_agent start
    starting agent
    Opening PID file "/opt/vertica/log/agent.pid".
    Overwriting /opt/vertica/log/agent_uidbadmin.log
    Overwriting /opt/vertica/log/agent_uidbadmin.err
    start OK for user: uidbadmin
    
  7. 验证您是否可以使用 API 密钥查看有关数据库的信息。

    $ curl -X GET https://10.20.80.145:5444/databases -H "VerticaApiKey:wCgXny3Wm+8OhEvGkAclv7v9+VIlxgXblpr4rf" -k
    
  8. 验证代理是否正在使用新证书。

    $ openssl s_client -prexit -connect 10.20.80.145:5444