我目前正在建立一个新的Solr 9(确切地说是9.2)集群。到目前为止,我有2个Solr节点,一个外部ZooKeeper,我的索引中有文档。
一旦我有了工作,我转移到启用HTTPS(与自签名证书),这也工作得很好。
最后一步是使用(新的)Certificate Authentication Plugin来保护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 ERROR 401需要证书
URI:/solr/documents/select STATUS:401信息:需要证书SERVLET:默认
尽管我确实看到证书确实附在请求中。
有人有这方面的经验吗?有没有发现我做错了什么?不幸的是,文档并没有对这个主题进行详细说明,更不用说故障排除了。
谢谢你,谢谢
1条答案
按热度按时间v09wglhw1#
结果是我必须在solr.in.cmd中设置下一个变量:
set SOLR_SSL_WANT_CLIENT_AUTH=true
一旦我这样做了,它开始在Postman中正确响应(虽然在试图访问Solr Admin UI时不在浏览器中)它似乎是必需的,以便它“听”,或者更确切地说,接受证书。
如在:https://solr.apache.org/guide/solr/latest/deployment-guide/enabling-ssl.html#set-common-ssl-related-system-properties(在客户端身份验证设置警告中)