我的公司正在过渡到基于云的应用程序服务器。关键应用程序将继续在内部运行,但选定的新应用程序将在基于云的应用程序服务器上运行。许多内部应用程序服务器向客户端应用程序提供REST端点。目前,该公司使用白名单进行客户端身份验证。对于单实例云服务可以。我们使用AWS,因此弹性IP(EIP)非常适合单个或几个实例。但是,我认为对于云服务器应用程序来说,根据实例将我们的公司策略用于白名单IP的规模来扩展和缩减实例是有问题的。超越几个EIP的任何事情都变得困难。最起码,我是这么想的。
我正在考虑使用X.509证书名称验证。换句话说,一旦验证了证书并交换了会话密钥,我将使用有效名称列表来验证证书上的名称。如果名称匹配,我将继续该会话。否则,如果名称不匹配,则使用403错误代码关闭会话。这是在客户端和服务器上完成的,因此都可以相互验证。是否可以在Tomcat中作为config.xml的一部分或自动的其他名称进行此名称检查?换句话说,这是一种自动方式,因此我不必修改端点HTTPS代码。还是我必须修改HTTPS代码以包括对证书名称的检查?这有意义还是有更好的方法?
最好的祝福,
史蒂夫·曼斯菲尔德
最佳答案
好吧,我想出了答案。我发现Maxim Porges撰写的精彩网页可以解释我所需的一切,
http://www.maximporges.com/2009/11/18/configuring-tomcat-ssl-clientserver-authentication/
是的,我可以同时验证服务器和客户端。服务器端无需更改代码。我只需要将客户端证书放在服务器密钥库中。我还需要确保在Tomcat配置文件(server.xml)中将clientAuth设置为“ want”。在客户端,我需要进行一些代码更改,但它们很小。我还需要将服务器证书和客户端证书放在客户端可以找到它们的地方。一旦知道了就非常简单。提供的URL详细说明了每个步骤。
最好的祝福,
史蒂夫·曼斯菲尔德
关于security - X.509与白名单认证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30517088/