支持移动客户端的客户端证书认证( mTLS)
描述你喜欢的特征
□ 说明
我运行一个自办的卡拉基普实例 背后的倒置代理 ,相互的 TLS (mTLS) 启用。
网页UI在Android Firefox上工作正确,因为Firefox可以请求和使用所配置的客户端证书. 然而,原生Android应用和Firefox Android扩展无法连接到同一服务器,因为他们似乎没有使用或请求客户端证书.
我请求支持Karakkeep移动客户端的客户端证书认证(mTLS),并在技术上可能时支持浏览器扩展.
□ 当前的行为
我在同一个Android设备上测试了以下三种情景,并对照了同一自备的卡拉凯普服务器:
- Karakeep Web UI in Firefox Android——作品 互联网档案馆的存檔,存档日期2011-12-21.
在 Firefox Android 中直接打开 Karakkeep 网络 UI 触发 Android/ Firefox 客户端证书选择对话框.
在选择客户端证书后, TLS 连接成功, 我可以正常使用 Karakeep 。
这证实了反向代理和mTLS配置工作正确.
- 卡拉克维 Android app——不起作用
本地Android应用程序不会触发客户端证书选择对话框.
服务器的反应是:
`400 未发送所需的SSL 证书'
该应用程序还为API请求提供了配置自定义的HTTP头的选项,但HTTP头无法取代TLS客户端证书认证,因为客户端证书是在TLS握手期间交换的,在HTTP请求和头被发送之前.
- Karakkeep Firefox Android扩展 - 无法连接
Karakeep Firefox Android扩展也无法连接到MTLS后方我自办的Karakeep服务器.
不同于在Firefox中直接打开Karakkeep网络UI,扩展不会触发浏览器的客户端证书选择对话框.
扩展无法建立连接到服务器 。 扩展所显示的“ 400 ” 等具体错误信息没有发送所需的 SSL 证书, 因此我无法确定连接失败的确切位置 。
□ 预期行为
如果Karakeep移动客户端在连接到自托管实例时能够支持mTLS/客户端证书认证,将会有所帮助.
例如:
*Android客户端证书认证使用Android系统证书存储 / KeyStore
- 选择或配置Karakkeep服务器客户端证书的能力
- 本地 TLS 客户端认证
- 使用适当的系统证书/键链机制对iOS提供同等支持
- 如果技术上可行,支持移动浏览器扩展中的客户证书
具体的实施当然可以由开发者决定.
□ 复制步骤
- 在HTTPS倒置代理机后部署自备的Karakkeep实例。
- 配置反向代理,以要求客户端证书(mTLS).
- 使用Firefox Android直接访问Karakkeep URL. 4.四. . . . . . . .
内容来源: karakeep-app/karakeep