配置 HugeGraphServer 使用 https 协议

概述

HugeGraphServer 默认使用的是 http 协议,如果用户对请求的安全性有要求,可以配置成 https。

服务端配置

修改 conf/rest-server.properties 配置文件,将 restserver.url 的 schema 部分改为 https。

  1. # 将协议设置为 https
  2. restserver.url=https://127.0.0.1:8080
  3. # 服务端 keystore 文件路径,当协议为 https 时该默认值自动生效,可按需修改此项
  4. ssl.keystore_file=conf/hugegraph-server.keystore
  5. # 服务端 keystore 文件密码,当协议为 https 时该默认值自动生效,可按需修改此项
  6. ssl.keystore_password=******

服务端的 conf 目录下已经给出了一个 keystore 文件hugegraph-server.keystore,该文件的密码为hugegraph, 这两项都是在开启了 https 协议时的默认值,用户可以生成自己的 keystore 文件及密码,然后修改ssl.keystore_filessl.keystore_password的值。

客户端配置

在 HugeGraph-Client 中使用 https

在构造 HugeClient 时传入 https 相关的配置,代码示例:

  1. String url = "https://localhost:8080";
  2. String graphName = "hugegraph";
  3. HugeClientBuilder builder = HugeClient.builder(url, graphName);
  4. // 客户端 keystore 文件路径
  5. String trustStoreFilePath = "hugegraph.truststore";
  6. // 客户端 keystore 密码
  7. String trustStorePassword = "******";
  8. builder.configSSL(trustStoreFilePath, trustStorePassword);
  9. HugeClient hugeClient = builder.build();

注意:HugeGraph-Client 在 1.9.0 版本以前是直接以 new 的方式创建,并且不支持 https 协议,在 1.9.0 版本以后改成以 builder 的方式创建,并支持配置 https 协议。

在 HugeGraph-Loader 中使用 https

启动导入任务时,在命令行中添加如下选项:

  1. # https
  2. --protocol https
  3. # 客户端证书文件路径,当指定 --protocol 为 https 时,默认值 conf/hugegraph.truststore 自动生效,可按需修改
  4. --trust-store-file {file}
  5. # 客户端证书文件密码,当指定 --protocol 为 https 时,默认值 hugegraph 自动生效,可按需修改
  6. --trust-store-password {password}

hugegraph-loader 的 conf 目录下已经放了一个默认的客户端证书文件 hugegraph.truststore,其密码是 hugegraph。

在 HugeGraph-Tools 中使用 https

执行命令时,在命令行中添加如下选项:

  1. # 客户端证书文件路径,当 url 中使用 https 协议时,默认值 conf/hugegraph.truststore 自动生效,可按需修改
  2. --trust-store-file {file}
  3. # 客户端证书文件密码,当 url 中使用 https 协议时,默认值 hugegraph 自动生效,可按需修改
  4. --trust-store-password {password}
  5. # 执行迁移命令时,当 --target-url 中使用 https 协议时,默认值 conf/hugegraph.truststore 自动生效,可按需修改
  6. --target-trust-store-file {target-file}
  7. # 执行迁移命令时,当 --target-url 中使用 https 协议时,默认值 hugegraph 自动生效,可按需修改
  8. --target-trust-store-password {target-password}

hugegraph-tools 的 conf 目录下已经放了一个默认的客户端证书文件 hugegraph.truststore,其密码是 hugegraph。

如何生成证书文件

本部分给出生成证书的示例,如果默认的证书已经够用,或者已经知晓如何生成,可跳过。

服务端

  1. ⽣成服务端私钥,并且导⼊到服务端 keystore ⽂件中,server.keystore 是给服务端⽤的,其中保存着⾃⼰的私钥
  1. keytool -genkey -alias serverkey -keyalg RSA -keystore server.keystore

过程中根据需求填写描述信息,默认证书的描述信息如下:

  1. 名字和姓⽒:hugegraph
  2. 组织单位名称:hugegraph
  3. 组织名称:hugegraph
  4. 城市或区域名称:BJ
  5. 州或省份名称:BJ
  6. 国家代码:CN
  1. 根据服务端私钥,导出服务端证书
  1. keytool -export -alias serverkey -keystore server.keystore -file server.crt

server.crt 就是服务端的证书

客户端

  1. keytool -import -alias serverkey -file server.crt -keystore client.truststore

client.truststore 是给客户端⽤的,其中保存着受信任的证书