问题标签 [mtls]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - 如何在 Azure 中最好地设置 MTLS
我想在 Azure中托管IdentityServer4 ,并为特定路径配置了MTLS 。如何通过在“应用服务”中托管 IdentityServer4 asp.net 核心应用程序并使用某种负载平衡器设置 MTLS 来实现这一点:API 管理服务、应用程序网关、NGINX 等。我需要的是需要客户端证书特定路径并能够设置某种 CTL(证书信任列表)。换句话说,我想用 Windows-IIS 机器和 web.config 替换您完成的以下操作:
任何人?
java - 证书更新后出现“SSLHandshakeException:签署证书验证时出错”
我有一个 SpringBoot 2 应用程序,在带有 Java8 Runtime 的 Tomcat 8.5 中运行。它正在为两个不同的证书/密钥使用 JKS 密钥库,这两个证书/密钥都被应用程序用于双向 TLS (mTLS)。
由于我们从 CA 管理员处检索了新版本的证书,因此一旦尝试客户端 mTLS 调用,应用程序就无法再使用密钥库,但出现以下异常。
我们已经从它的 PKCS12 源多次重建了密钥库,当使用导出的证书和密钥时,例如 curl,一切正常。
node.js - `req.socket.authorized` 的结果使用 nodejs https 和 express [相互认证] 不正确
我正在尝试设置具有相互身份验证的 https 服务器。
我为服务器创建了密钥和证书(自动签名)。
现在我使用 firefox 连接到服务器而不提供任何客户端证书。
这应该导致req.socket.authorized
存在false
(如此处所述),但由于某种原因,在一些刷新(并且没有改变任何东西)之后,消息从权利
Unauthorized: Client certificate required (UNABLE_TO_GET_ISSUER_CERT)
变为
Client certificate was authenticated but certificate information could not be retrieved.
对我来说这是出乎意料的,因为这意味着req.socket.authorized == true
即使没有客户端证书。有人可以解释一下为什么会这样吗?
这是我的代码:
kubernetes - 两个 Kubernetes 集群之间的 mTLS
我试图在两个 kubernetes 集群中的两个应用程序之间获取 mTLS,而不是 Istio 的方式(使用它的入口网关),我想知道以下是否可行(对于 Istio,对于 Likerd,对于 Consul ......)。
假设我们有一个带有应用程序 AA 的 k8s 集群 A 和一个带有应用程序 BB 的集群 B,我希望它们与 mTLS 通信。
- 集群 A 为 nginx 入口控制器提供了letsEncrypt 证书,并为其应用程序提供了一个网格(无论如何)。
- 集群 B 具有来自我们的根 CA 的自签名证书。
- 集群 A 和 B 服务网格具有由我们的根 CA 签名的不同证书。
- 流量从互联网流向集群 A 入口控制器 (HTTPS),从那里流向应用 AA
- 流量到达应用 AA 后,此应用想与应用 BB 通话
- 应用程序 AA 和 BB 具有通过入口暴露的端点(使用它们的入口控制器)。
- TLS 证书以端点结尾并且是通配符。
您认为 mTLS 会在这种情况下工作吗?
security - 遵循 mtls 迁移步骤时,Istio 与种类 PeerAuthentication 不匹配
我不断得到:no matches for kind "PeerAuthentication" in version "security.istio.io/v1beta1"
当我尝试按照此处描述的步骤进行操作时:
我寻找这个错误以了解如何解决它,但我什么也没找到。
这对某人意味着什么?
谢谢
istio - 如何为多集群 Istio Mesh 设置 PKI
我正在尝试使用 Istio 配置具有复制控制平面的多集群网格拓扑,如https://istio.io/docs/setup/install/multicluster/gateways/中所述。我的 PKI 设置有 3 层,如下所示。
- 根 CA (root-ca.pem)
- 中间 CA 签署每个集群 Citadel CA (intermediate-ca.pem)
- 每个集群的 Citadel CA (ca-cert.pem)
按照安装说明,我使用以下命令将证书安装到 istio-system 命名空间中。
在此命令中,ca-cert.pem 是集群的 CA 证书。ca-key.pem 是 ca-cert 的私钥。cert-chain.pem 是 ca-cert.pem 的完整链,即。cert-chain.pem=$(cat ca-cert.pem intermediate-ca.pem root-ca.pem)
当我将此设置安装到集群中时,mTLS 按预期使用我的自定义 CA 在集群中正常工作。但是,当我去设置多集群环境时,从集群 A 到集群 b 的调用无法通过根证书验证。
有没有人了解为什么这些证书在共享相同的根 CA 结构时不受信任?
更新:我相信这可能与目标集群的入口网关在尝试代理与后端服务的连接时崩溃有关。
go - 如何在 Golang 中测试 https 服务器我的客户端是否有证书
有没有一种简单的方法可以确定我从 http.Client 与之通信的服务器是否接受并验证了我在 mTLS 中的客户端证书?
在我的代码中,我想知道远程服务器是否接受了我在执行 http.Client.Get 调用时为客户端传输的客户端证书。
http.Response 结构有一个包含 ConnectionState 的 TLS 字段,但是当我没有在传输中提供客户端证书时也会设置它。我确实看到,当我使用客户端证书执行 Get 时,我在 VerifiedChains 中获得了更多元素,而不是没有客户端证书。
cloud - 如何在云计算的世界中实现 mTLS
大家早。我正在尝试了解在云计算领域实施 mTLS 的最佳实践。各种云平台提供商(AWS、GCP 和 Azure)的 CDN 服务似乎不支持 mTLS。我可以看到 CloudFlare 在他们的企业计划中支持它,Akamai 也是如此。如果不使用 CDN,应用程序会将自身置于 DDOS 攻击的风险之中。
据我所知,选择是使用像 CloudFlare Enterprise 这样昂贵的 CDN 来获得 DDOS 保护,或者不使用 DDOS 保护并在不使用 CDN 的私人管理的反向代理上实施 mTLS。两者都不好。
是否有在云中实施 mTLS 的最佳实践模式?
kubernetes - Istio mtls 配置错误导致行为不一致
我istio
在 GKE 集群上部署了 2 个启用的服务。
istio
版本是1.1.5
并且 GKE 已开启v1.15.9-gke.24
istio
已安装global.mtls.enabled=true
serviceA
正常沟通
serviceB
显然有 TLS 相关的问题。
我启动了一个未istio
启用的部署,仅用于测试并在这个测试 pod 中执行到curl
这两个服务端点。
执行有问题的服务的envoy
代理并打开跟踪级别登录,我看到了这个错误
两个容器的 envoy sidecar在调试其证书时显示相似的信息。
istio
我通过在两个容器中执行、cd-ing/etc/certs/..data
并运行来验证这一点
两者root-cert.pem
一模一样!
由于这 2 个 istio 代理在证书方面具有完全相同的 tls 配置,为什么会出现这个神秘的 SSL 错误serviceB
?
FWIWserviceB
与未启用 istio 的postgres
服务通信。
这会导致问题吗?
curling
然而, from inside的容器会serviceB
返回一个健康的响应。
kubernetes - 由于证书 mTLS 上的路径无效,Istio Sidecar 代理无法启动
命名空间上启用了自动注入,我正在尝试使用Auto mTLS
. 已验证 Istio Pilot 和 Citadel 运行正常。证书机密已正确创建和安装。istio 代理启动失败,出现以下日志。具体错误是Invalid path: ./var/run/secrets/istio/root-cert.pem
秘密
Pod 卷
更新:
查看 istio 注入器配置映射并与另一个比较时,缺少一个 if 条件。有谁知道如何恢复这种情况?