Javascript 将x509证书传递到node express服务器,而不是通过https

Javascript 将x509证书传递到node express服务器,而不是通过https,javascript,node.js,express,authentication,x509,Javascript,Node.js,Express,Authentication,X509,我搜索了又搜索,但是我在这个主题上找到的所有东西都是关于设置一个node express服务器来使用HTTPS的,这不是我想要实现的 我想知道,无论是否使用HTTPS,将客户机x.509证书传递到post请求中,然后解析和使用客户机证书是否安全(更重要的是良好做法) 如果我能提供一个可能有用的例子 我有一个简单的医疗应用程序,其中用户使用用户名和密码对node express路由进行身份验证,此外,我已经配置了HTTPS并正在工作 但是,在使用客户机应用程序的稍后阶段,我需要用户能够传入他们的x

我搜索了又搜索,但是我在这个主题上找到的所有东西都是关于设置一个node express服务器来使用HTTPS的,这不是我想要实现的

我想知道,无论是否使用HTTPS,将客户机x.509证书传递到post请求中,然后解析和使用客户机证书是否安全(更重要的是良好做法)

如果我能提供一个可能有用的例子

我有一个简单的医疗应用程序,其中用户使用用户名和密码对node express路由进行身份验证,此外,我已经配置了HTTPS并正在工作

但是,在使用客户机应用程序的稍后阶段,我需要用户能够传入他们的x.509证书,并允许使用他们的公钥验证数据

现在,我知道身份验证是在https的初始连接上执行的,但这是不同的,所以我想我可以将用户证书作为json对象传递,并在express路由中创建/使用证书

起初,我认为这应该是好的,因为证书是公开的,我们已经建立了一个安全端点,但是,我很惊讶,我无法找到任何关于这方面的示例或教程,所以可能出于某种原因,我不知道,这不是最佳实践

任何建议或指导都很好

提前谢谢。 当做
Steve

如果您不使用MTL(通过HTTPS),则需要开发一个协议来验证提交证书的用户实际上是私钥持有人。这并不是一件小事,不这样做意味着您将面临琐碎的欺骗攻击。

感谢您的回复。我实际上使用的是HTTPS,但是,接下来我需要使用客户端证书。例如,可以将这些消息传递到我的RESTAPI端点,并使用证书对带有证书公钥的质询进行解密吗?谢谢Stephenth提交证书的用户不会告诉您任何信息。请记住,证书是公开的,任何人都可以拥有证书的副本。要证明您是证书中反映的用户,必须使用相应的私钥执行操作。这就是MTL的情况。是的,我理解。是否可以通过我的节点应用程序中的rest api请求质询,然后用户使用其公钥对其进行加密,并将其与证书一起发布到我的节点Is服务器中的另一个端点。然后我可以核实。就像我说的,我在服务器上使用初始TLS HTTPs,但需要进一步使用证书的功能。感谢您对以上内容的补充。有些用户将需要证书和智能卡,但有些用户将使用密码,因此我也想以不同的方式处理证书身份验证。此外,证书将用于其他目的。例如,对数据进行签名并再次将其发送到服务器,需要发送证书以便服务器能够验证签名。根ca证书也将位于节点服务器上,同时可以设计使用证书的身份验证协议设计安全变体比表面上看起来更难。“根证书验证”是其中可能最小的部分。我不相信通过堆栈溢出帖子设计安全协议是可能的