我目前正在开发一个项目(基于“Firefox OS”的应用程序),我想知道Firefox OS中是否有任何现有的API或库,我可以在我的应用程序中使用它来确保SSL / TLS相互认证?
如果没有,我如何在我的应用程序中使用Apache服务器配置SSL / TLS相互身份验证,以便它可以要求客户端证书并从该证书中提取公钥?
答案 0 :(得分:0)
我不能说apache配置,但这里是我们当前实现Raw Sockets提议[0]的文档。注意:任何以浏览器为前缀的API都不稳定,并且可能会发生变化,因为spec [1]目前是一个移动目标,并且还不是推荐。这是一个真实的例子,我被这个[2]咬了。
Web标准的美妙之处在于,任何人都可以提出更改,添加内容等等。您可以在此处找到Github回购[3],您可以在其中创建一个询问客户端证书支持的问题。
目前,我不相信我们的规范或规范本身的实现支持客户端证书的用例。我正在调查实施SSH客户端时,我不得不考虑这个问题。我必须研究的一个类似问题是如何生成客户端密钥,并将它们传输到远程机器。
如果您有其他技术问题,请随时直接向我发送电子邮件,我的电子邮件地址列在我的个人资料中。
[0] https://developer.mozilla.org/en-US/docs/Web/API/TCPSocket
[1] http://raw-sockets.sysapps.org/
[2] https://twitter.com/LostOracle/status/409598679889104896
答案 1 :(得分:0)
配置Apache以允许相互认证非常简单,并且http://httpd.apache.org上的文档也很清楚。基本上,您需要两个证书:一个服务器证书要安装在Apache服务器上,然后一个客户机证书要安装在Firefox浏览器或其他设备上。客户端证书必须由Apache服务器知道的CA之一颁发,以使身份验证成功。
该项目https://github.com/amusarra/docker-apache-ssl-tls-mutual-authentication实现了Apache SSL / TLS相互身份验证的完整配置