Java 配置Grails以使用证书身份验证进行POST
我对证书和安全性的工作还很陌生,所以请原谅我,如果这对其他人来说是不需要动脑筋的话。我随后将Grails应用程序设置为使用自签名证书在HTTPS上运行 我正在尝试与运行在同一台机器上的另一个HTTPS网络(Nifi独立实例)建立双向SSL。我可以让Nifi实例通过HTTPS与Grails对话,但Grails与Nifi(特别是与ListenHTTP处理器)对话时遇到了问题 我希望有人能建议在通过HTTPS发布时如何在Grails中使用证书身份验证。 Nifi使用证书认证;然而,根据上面的指南,Grails只指定了一个密钥库(用于接收请求?),所以我有点被抛弃了。通过指定--cert和--key属性,我可以成功地卷曲到Nifi的RESTAPI,但由于最终产品将是对客户机的一场战争,我希望以“正确的方式”设置它,并且我相信将这些文件留在客户机上对安全来说是一个非常大的禁忌 在早期开发期间,通过HTTP进行双向通信已经足够了,但是,我找不到任何关于将其与证书身份验证一起使用的内容(文档中只介绍了基本身份验证?) 当我寻找替代方案时,显示了很多,但是在查看it时,它声明需要整个密钥库JKS和密码。我认为这是接近,但不完全是我所寻找的考虑,我只有一个密钥库;我愿意在这里改正Java 配置Grails以使用证书身份验证进行POST,java,ssl,grails,ssl-certificate,apache-nifi,Java,Ssl,Grails,Ssl Certificate,Apache Nifi,我对证书和安全性的工作还很陌生,所以请原谅我,如果这对其他人来说是不需要动脑筋的话。我随后将Grails应用程序设置为使用自签名证书在HTTPS上运行 我正在尝试与运行在同一台机器上的另一个HTTPS网络(Nifi独立实例)建立双向SSL。我可以让Nifi实例通过HTTPS与Grails对话,但Grails与Nifi(特别是与ListenHTTP处理器)对话时遇到了问题 我希望有人能建议在通过HTTPS发布时如何在Grails中使用证书身份验证。 Nifi使用证书认证;然而,根据上面的指南,Gr
请注意,至少在发布此问题的第二天之前,我将无法回复。在建立传出HTTPS连接时,如果远程端点(在本例中为Apache NiFi)需要客户端证书身份验证,则发起端点(Grails)将尝试提供证书。Grails用来将自己标识为服务的证书可以在这种情况下使用,前提是:
ExtendedKeyUsage
扩展集,或者如果设置了ServerAuth
和ClientAuth
值。如果缺少ClientAuth
,系统将不允许将此证书用于客户端身份验证,这是此交换中的必要角色李>
SubjectAlternativeName
值,该值与它运行的主机名相匹配。规定SAN值应用于证书标识,而不是可分辨名称
(DN
)和通用名称
(CN
)。因此,如果Grails应用程序运行在https://grails.example.com
,SAN必须包含grails.example.com
或*.example.com
的值李>
conf/authorizers.xml
文件来完成。有关更多信息,请参阅李>
您担心将cert.pem
和key.key
文件留在客户端计算机上是可以理解的,但其中包含的敏感信息与密钥库中的数据相同。在某些情况下,Grails应用程序必须能够访问私钥才能执行HTTPS过程,因此在密钥库中使用私钥在功能上是等效的(您没有提到在*.key
文件中使用密码,但显然您应该在密钥库中使用密码)