我们有一个Web服务和3个内部客户端访问它
它们都托管在同一个域中,我们为所有这些域使用ssl证书* .ourdomain.com。
所以我们得到了:
我想知道我们是否可以通过验证证书来验证请求的身份(在api上)。所以我们可以废弃基本身份验证。
你认为这是可行的和安全的吗?怎么样 ?我们正在使用rails 3.0.5 / ruby 1.9.2
答案 0 :(得分:1)
谁在您的环境中控制您的SSL终止? 如果你使用EventMachine,你可以在post_init里面使用
def post_init
start_tls :private_key_file => 'mycert', :cert_chain_file => 'mychain', :verify_peer => true
end
然后在回调中你可以检查证书的有效性
def ssl_verify_peer(cert)
#TODO: check if the client cert is valid
end
从安全的角度来看,可以检查客户端ssl证书的有效性。你只需要保守秘密。如果有人窃取该文件,将绕过auth。这就是为什么使用cert + a pasword(双因素身份验证)的原因。
问候。