我正在尝试在nginx服务器和客户端(浏览器/邮递员)之间建立双向SSL连接。 我想知道是否应该可以告诉nginx信任浏览器/邮递员的密钥,假设nginx请求并验证客户端的证书。 具体来说,应该放在nginx的那一部分
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/newcert.crt;
ssl_certificate_key /etc/nginx/ssl/newkey.pem;
ssl_session_timeout 15m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
ssl_verify_client on;
ssl_verify_depth 2;
# what should be the content of that file??
>>>>>> ssl_client_certificate /etc/nginx/ssl/trust/client.crt;
}
我没有找到任何有关此事的信息......
感谢。
答案 0 :(得分:0)
ssl_client_certificate
指令指向包含用于签署客户端证书请求的证书颁发机构的文件。有关详细信息,请参阅this document。
如果您使用自签名证书颁发机构作为客户端证书,则过程如下:
为客户端生成证书请求。例如:
openssl req -newkey rsa:2048 -nodes -keyout user.key -out user.req
使用步骤1中的CA对步骤2中的请求进行签名,以便为客户端生成证书。请参阅上面的OpenSSL CA(1)。
将步骤3中的证书转换为PKCS#12格式的文件,以便客户端可以导入该文件。例如:
cat user.key user.crt | openssl pkcs12 -export -out user.p12