我正在尝试设置ssl客户端身份验证。我使用startssl作为CA,如果这有任何区别。我从startssl获得了根证书,中间证书和客户端证书。我还有几个s / mime证书,用于对startssl网站进行身份验证。我想要完成的是为我自己的网站进行客户端证书身份验证。一切都使用自签名证书,但使用签名的证书我感到困惑。
我有来自startssl的以下文件:
root.crt
intermediate.crt
ssl.crt
ssl.key
----------------
user@host-client.crt <- for authenticating against startssl
然后对于nginx我运行:
cat ssl.crt intermediate.crt root.crt > unified.crt
然后在nginx:
server {
listen 443;
ssl on;
server_name example.com;
ssl_certificate /etc/nginx/certs/unified.crt;
ssl_certificate_key /etc/nginx/certs/ssl.key;
ssl_client_certificate /etc/nginx/certs/<WHAT GOES HERE>;
ssl_verify_client on;
location / {
root /var/www/example.com/html;
}
}
如果我想使用startssl s / mime证书,或者如果可能的话,我不确定如何使用ssl_client_certificate
。
如果我不能使用startssl s / mime证书:在像this这样的教程中,我将使用什么作为ca.key和ca.crt(可能是统一的ssl?)。
在任何一种情况下,我如何确定ssl_verify_depth
?我已经找到了许多如何使用自签名密钥执行此操作的示例,但就使用已签名的密钥链而言,我的理解开始滞后。谢谢你的帮助!