我目前正在建立一个新的 Solr 9(确切地说是 9.2)集群。 截至目前,我有 2 个 Solr 节点、一个外部 ZooKeeper,并且我的索引中有文档。
一旦我完成了该工作,我就开始启用 HTTPS(带有自签名证书),这也工作得很好。
最后一步是使用(新)证书身份验证插件
来保护 Solr 访问我已经使用该页面中的示例编辑了我的 security.json,即:
"authentication": {
"class": "org.apache.solr.security.CertAuthPlugin"
},
"authorization": {
"class": "solr.RuleBasedAuthorizationPlugin",
"permissions": [
{
"name": "all",
"role": [
"admin-role"
]
}
],
"user-role": {
"CN=B---1,O=---CA,S=NY,C=US": [
"admin-role"
]
}
}
(出于隐私考虑,上面的一些字段已被编辑)
将其上传到 ZooKeeper 并重新启动我的 Solr 节点。
仅在 Solr 管理 UI 中出现下一个错误时才被授予:
在浏览器上玩了一段时间后,我也遇到了这个错误,但我没有得到任何结果
尝试通过 Postman 执行 SELECT,不幸的是也返回错误:
401错误需要 证书HTTP 错误 401 需要证书
URI:/solr/文档/选择 状态:401 留言:需要证书 服务小程序:默认
有人有这方面的经验吗?关于我可能做错了什么有什么见解吗? 不幸的是,该文档没有对这个主题提供太多说明,更不用说故障排除了。
谢谢!
结果我必须在 solr.in.cmd 中设置下一个变量:
set SOLR_SSL_WANT_CLIENT_AUTH=true
一旦我这样做了,它就开始在 Postman 中正确响应(但在尝试访问 Solr 管理 UI 时不在浏览器中)
似乎需要它才能“监听”,或者更确切地说,接受证书。
如所述:https://solr.apache.org/guide/solr/latest/deployment-guide/enabling-ssl.html#set-common-ssl-lated-system-properties(在客户端身份验证设置中)警告)