当前位置: 首页 > 知识库问答 >
问题:

设置SOLR SSL属性

微生乐
2023-03-14

当我使用提供的Apache SOLR启动脚本(版本6.6.0)时,该脚本会创建并执行一个java命令行,该命令行具有两组SSL属性,它们的相关元素设置为相同的值。一组具有javax.net.ssl.*等名称,而另一组具有solr.jetty.*等名称。例如:

java -server ... 
    -Dsolr.jetty.keystore.password=secret ...
    -Djavax.net.ssl.keyStorePassword=secret ...
    ... -jar start.jar --module=https

我们的安全团队不允许在命令行或环境变量中传递密码,但允许将它们放置在文件中,前提是该文件具有受限访问权限。我注意到在solr/server/etc目录中有一个jetty-ssl.xml文件,可用于为所有solr.jetty.*属性提供默认值,包括solr.jetty.keystore.password。当我从java命令行中删除所有javax.net.ssl.keyStorePasswordsolr.jetty.keystore.password属性并使用我的密钥库密码更新jetty-ssl.xml文件时,SOLR似乎以该文件中包含的默认密钥库密码开始。然后,我可以用浏览器连接到https://localhost:8983/solr/#并访问SOLR管理页面。

是javax。网ssl* SOLR standalone或SOLR cloud产品中使用的所有属性?它们是否在浏览器之外的后台用于解决服务器连接,以连接到zookeeper等其他进程?我在源代码中看到的对它们的唯一引用是solr客户端的solr嵌入式代码。

共有1个答案

尹正奇
2023-03-14

是的,都是solr。jetty服务器端和javax。网ssl。*SOLR使用客户端属性。对于某些操作,如集合创建,SOLR似乎连接到自身,当它这样做时,它会尝试通过SSL和javax连接。网ssl。*属性值。

为了避免在命令行或环境变量中传递属性,我提出的解决方案是创建一个只有premain方法的javaagent类。在此premain方法中,它在main In start之前运行。jar中,我读取了一个包含“secret”SSL属性的属性文件,如javax。网ssl。keyStorePassword。然后,代理将该键/值添加到Java系统属性中。

因此,当main启动时,所有SSL属性都是已知的,并且没有暴露于命令行或环境变量中。显然,为了维护安全,必须限制属性文件的所有权和权限。可以将以下内容添加到SOLR java命令行中,以确保代理运行并可以作为参数访问属性文件:

java -javaagent:ssl-agent.jar=/path/to/ssl/properties/file ... -jar start.jar ... 

有关编写java代理的信息,请参见此处。

 类似资料:
  • 主要内容:Jsoup 设置属性 语法,Jsoup 设置属性 说明,Jsoup 设置属性 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后使用方法设置 dom 元素的属性、批量更新和添加/删除类方法。 Jsoup 设置属性 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 link : 元素对象表示表示锚标记的 html 节点元素。 link.attr() : attr

  • 可查看或修改模型属性,例如,设置自定义 ID,修改模型名称、尺寸、位置等。 不同类型模型的属性设置不同,如建筑、门窗、墙等。另外,在人物/动物/植物模型属性中,设有播放动画属性。 传送点设置 编辑场景时,可以通过模型的自定义属性设置传送点。在预览场景时,第一人称行走模式下,当行走到传送点的位置时,会传送到配置的地点。 在自定义属性中添加传送属性 _Portal_,参数配置为要传送目标物体的自定义

  • 问题内容: 我有一个具有许多可设置/可获取的属性的类。我想使用 反射 来设置这些属性,但是我对实现有两个问题 这是我班上的一些简化代码 然后,我像这样设置各个字段: 这有效(即,当我调用set_attribute时设置实例变量。 但是,它们仅在实例变量被声明为public时起作用。当它们被声明为私有时,我得到一个 NoSuchFieldException 问题1: 当字段为私有时,为什么会出现该错

  • 问题 在你解析一个Document之后可能想修改其中的某些属性值,然后再保存到磁盘或都输出到前台页面。 方法 可以使用属性设置方法Element.attr(String key, String value), 和Elements.attr(String key, String value). 假如你需要修改一个元素的class 属性,可以使用Element.addClass(String clas

  • 下面的示例将展示使用方法设置dom元素的属性,批量更新以及在将HTML String解析为Document对象后添加/删除类方法。 语法 (Syntax) Document document = Jsoup.parse(html); Element link = document.select("a").first(); link.attr("href","www.yahoo.c

  • 我试图在Spring Boot环境中设置一个clamav病毒扫描程序。因此,我想在属性文件clamav.properties中设置主机和端口,该文件与application.properties文件一起位于我的resources目录中。看起来是这样的: 我有这门课: 它没有连接,在日志中我得到这个: 因此,这些值显然没有设置。我做错了什么?我使用的是spring boot starter web的