HugeGraph Hubble 配置 https 协议的操作步骤
背景
HugeGraph 图数据库的 Server 端支持 https 配置,官方文档中有说明相对比较容易,而 Hubble 部署过程都是 http的。
我们有一个应用要嵌入 hubble 页面,而且部署为 https ,那么 Hubble 是否支持配置 https 呢?网络上搜不到 hubble 的 https 配置说明,不知道别人都是怎么使用 HugeGraph 的,感觉能搜到的内容都很浅显。
跟源码,结合其他项目的 https 部署经验,最终找到了一种方法可以达到目标,本文将分享 HugeGraph Hubble 部署为 https 协议的过程。
部署方式确定
确定图数据库的各组件的版本及部署方式:
- HugeGraph Server 为 http,版本 V0.10.4
- Hubble 为 https,版本 1.6.0
- Hubble Web 嵌套的目标应用部署为 https
Hubble 启动脚本改造
跟踪 hubble 后端源码 hubble-be ,它是一个 spring-boot 项目,但是应用配置文件 application.properties
打包到类路径下了,应用启动通过指定主类并设置后台需要的根目录。
我们知道一个基于Spring 的 Java Web 应用部署为 https 通常只需要在配置文件中添加 server.ssl
配置项就可以了,有几个思路:
- 自定义一个 application.properties,放在哪里能生效呢?试了放在 lib 目录下,没有生效。
- 修改源码中的应用配置文件,重新打包,源码 maven 依赖下载失败,重打包还麻烦。
- 修改启动命令手动设置 ssl 的环境变量,这个最简单,直接复制一个
start-hubble.sh
文件,加上配置就可以了。
改造部署脚本:进入 hugegraph-hubble-1.6.0/bin 目录下,拷贝一份启动文件重命名为 start-hubble-ssl.sh
,然后编辑该文件,大概在 63 行的位置,加上环境变量配置,67 行启动命令的 -Dhubble.home.path
前面加上 ${sslEnv}
:
sslEnv=`echo -Dserver.ssl.enabled=true -Dserver.ssl.key-store=${HOME_PATH}/conf/hugegraph-server.keystore -Dserver.ssl.key-store-password=hugegraph`
echo 'ssl param is 'sslEnv
nohup nice -n 0 java -server ${java_opts} -Dhubble.home.path=${HOME_PATH} ${sslEnv} -cp ${class_path} ${main_class} ${args} > ${log} 2>&1 < /dev/null &
这里使用的证书是官网给出的 hugegraph server 的证书,密码是 hugegraph。
https 方式启动 Hubble:执行 start-hubble-ssl.sh
,由于 Tomcat 版本是 9.0.24 ,它的 SSL 启动有一个 Bug ,但不影响应用的访问:
异常说明参考《Tomcat SSL Support 异常说明》,如果有强迫症、见不得异常的话,直接升级 lib 目录下的 tomcat 9.0.24 的 三个 jar 为26 以上版本。
证书文件
官网上有 《hugegraph server 配置为 https 》 直接套用服务端的证书文件作为 hubble 的证书 hugegraph-server.keystore
,该文件在 1.0.0 的 server /conf 目录下,低版本 0.10.4 中没有。
如果服务端配置为该方式,那么还需要修改,同时官网 Hubble1.0.0 的配置文件少了可信任证书,需要从低版本 Hubble1.6.0 /conf 中弄一份 hugegraph.truststore
出来 ,并修改 hugegraph-hubble.properties 配置文件,添加一行 Server 端的协议类型:
server.protocol=https
它的作用是配置 HugeGrape Server 请求客户端的协议为 https
。
启示录
本文用到的文件已经上传到 CSDN 资源库了,有需要的可以下载 hugegraph-hubble-1.6.0 https 配置文件。
最后,再总结一下图数据库使用的部署方式:
- HugeGraph Server 配置为 https 时,Hubble 必须设置
server.protocol=https
保证与 Server 端通信正常。 - Hubble 自身部署方式默认是 http,如果有安全需要可以按本文配置为 https。
- Hubble 嵌套的目标系统如果是 https ,则 Hubble 也必须是 https 。
- Hubble 嵌套的目标系统如果是 http,则 Hubble 也必须是 http 。
版本维护工作不易,开源更不易!
相关文章:

HugeGraph Hubble 配置 https 协议的操作步骤
背景 HugeGraph 图数据库的 Server 端支持 https 配置,官方文档中有说明相对比较容易,而 Hubble 部署过程都是 http的。 我们有一个应用要嵌入 hubble 页面,而且部署为 https ,那么 Hubble 是否支持配置 https 呢?网…...

大型应用的架构演进--spring家族在其中的作用
01 大型应用的架构演进 带来的挑战: 运维与监控 分布式带来的复杂性 接口的调整成本 测试成本 依赖管理成本 02 Spring家族 在我看来,springboot的3大特点(我常用的):内置的web容器;开箱即用的starter模版;自动配置&…...
LinkedHashMap 简单实现LRU
要使用 LinkedHashMap 来实现LRU(最近最少使用)缓存,可以设置它的访问顺序为true,以便在每次访问一个元素时,将它移到最后,从而实现LRU的特性。以下是一个简单的Java示例: import java.util.Li…...
mysql字符串函数
函数名 描述 示例 ASCII(s) 返回字符串s的第一个字符的ASCII码 返回CustomerName字段第一个字母的ASCII码: SELECT ASCII(CustomerName) AS NumCodeOfFirstChar FROM Customers; CHAR_LENGTH(s) 返回字符串s的字符数 返回字符串RUNOOB的字符数: …...

【强烈推荐】视频转gif、图片拼gif,嘎嘎好用,免费免费真的免费,亲测有效,无效过来打我
问题描述 最近遇到一个需求是需要将视频生成gif,这个看上去不是很难,所以有了以下的解决办法 解决办法 首先想到的当然是自己写一个,用了两套代码: from moviepy.editor import *# 读取视频文件 video_clip VideoFileClip(&quo…...

C# Onnx Yolov8 Detect 印章 指纹捺印 检测
应用场景 检测文件中的印章和指纹捺印,用于判断文件是否合规(是否盖章,是否按印) 效果 项目 代码 using Microsoft.ML.OnnxRuntime; using Microsoft.ML.OnnxRuntime.Tensors; using OpenCvSharp; using System; using System.…...
0034【Edabit ★☆☆☆☆☆】【修改Bug4】Buggy Code (Part 4)
0034【Edabit ★☆☆☆☆☆】【修改Bug4】Buggy Code (Part 4) bugs conditions strings Instructions Emmy has written a function that returns a greeting to users. However, she’s in love with Mubashir, and would like to greet him slightly differently. She add…...
第十五篇-推荐-Huggingface-镜像-2023-10
推荐一个Huggingface-镜像网站 可下载模型和数据集,解决Huggingface无法访问问题,希望可以一直使用 https://hf-mirror.com/ 举个栗子 https://hf-mirror.com/models?searchqwen 有时需要验证,按要求点就好 域名 hf-mirror.com…...

Macos文件图像比较工具:Kaleidoscope for Mac
Kaleidoscope是一款文件图像比较工具,它可以方便地比较两个文本或者图片文件的差异。这个工具可以在Mac系统上使用,并且支持多种文件格式,包括文本文件、图片文件、PDF文件等等。 Kaleidoscope有一个直观的用户界面,可以让用户轻…...

Docker搭建Plex流媒体服务并播放自己本地视频
Docker搭建Plex流媒体服务 安装Docker创建存储配置文件的目录创建Plex容器配置Plex设置媒体库访问Plex 1 介绍 Plex是一个流媒体服务器,可以轻松地将你的媒体文件库(如电影、电视节目和音乐)通过网络流式传输到各种设备上。 Plex 是一套媒体…...

idea + Docker-Compose 实现自动化打包部署(仅限测试环境)
一、修改docker.service文件,添加监听端口 vi /usr/lib/systemd/system/docker.service ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock重启docker服务 systemctl daemo…...
ubuntu 下载Python
目前为止,Python 3.11 是最新版本的 Python。要在 Ubuntu 中下载和安装 Python 3.11,可以按照以下步骤进行: 安装编译所需的依赖项: sudo apt update sudo apt install -y build-essential zlib1g-dev libffi-dev libssl-dev libl…...
python 使用json包在json格式字符串和python对象之间的变化
起因:使用python json包时,将键值对均为数字的字典存入txt文件后重新加载进字典后出现“字典key值不唯一”的神奇现象。 相关代码: 字典添加数据部分 def xuhao_chuti(self):rand random.randint(1, 908)if rand in self.memery.keys() an…...

【C++】继承 ⑫ ( 继承的二义性 | virtual 虚继承 )
文章目录 一、继承的二义性1、场景说明 - 继承的二义性2、继承中的二义性报错3、完整代码示例 二、virtual 虚继承1、虚继承引入2、虚继承语法3、代码示例 - 虚继承 一、继承的二义性 1、场景说明 - 继承的二义性 A 类 是 父类 , B 类 和 C 类 继承 A 类 , 是 子类 , D 类 多…...

Linux网络流量监控iftop
在 Linux 系统下即时监控服务器的网络带宽使用情况,有很多工具,比如 iptraf、nethogs 等等,但是推荐使用小巧但功能很强大的 iftop 工具【官网:http://www.ex-parrot.com/~pdw/iftop/】。iftop 是 Linux 系统一个免费的网卡实时流…...

【虚幻引擎UE】UE4/UE5 基于2D屏幕坐标获取场景3D坐标 射线检测(蓝图/C++)
UE4/UE5 基于2D屏幕坐标获取场景3D坐标 一、射线检测1)定义1)射线与3D场景中的物体交互的流程2)射线检测蓝图函数3)蓝图实现根据鼠标点击位置获取场景中的坐标值4)根据相机中心点获取场景中的坐标值5)射线检…...
【OpenHarmony】系统编译环境搭建笔记
0、安装WSL 一定要安装WSL 2否则编译慢到怀疑人生。 1、将WSL从C盘迁移到其他盘 2、安装编译依赖库 按照上述流程,安装会提示一些错误,直接使用如下命令: sudo apt-get update && sudo apt-get install binutils binutils-dev g…...
深入理解JVM虚拟机第十二篇:JVM中的线程说明
文章目录 一:线程说明 1:线程概述 2:后台虚拟机主要线程 (一):虚拟机线程...
synchronized 、ReentrantLock
synchronized 和 ReentrantLock 都是用于实现多线程同步的机制: 锁的获取方式: synchronized 是内置的 Java 关键字,它通过对象的内置监视器来获取锁。每个对象都有一个关联的监视器,只有一个线程可以获得对象的监视器,其他线程必须等待。ReentrantLock 是一个类,它提供了…...

用VSCODE启动Java项目
下载插件 推荐下载插件 启动 在vscode中打开项目或将项目拖进vscode,等进度条加载完成即成启动项目...

wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...