在尝试使用客户端验证设置启用SSL的nginx服务器时,我的浏览器出现了 Headers 错误
下面是我的nginx.conf:
keepalive_timeout 100;
server_tokens off;
server {
listen 10.111.1.11:11111;
server_name localhost;
ssl on;
ssl_certificate ca.crt;
ssl_certificate_key newca.key;
ssl_client_certificate client.crt;
ssl_verify_client on;
location / {
root html;
index index.html index.htm;
proxy_ssl_session_reuse off;
proxy_pass http://10.111.1.11::1234;
proxy_ssl_name 10.111.1.11;
proxy_ssl_server_name on;
proxy_ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
proxy_ssl_ciphers HIGH:!aNULL:!MD5;
proxy_ssl_certificate ca.crt;
proxy_ssl_certificate_key newca.key;
}
}
以下是我生成证书和密钥的步骤:
创建用于签署客户证书的CA密钥和证书
openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
创建客户端密钥和CSR
openssl genrsa -des3 -out client.key 4096
openssl req -new -key client.key -out client.csr
我的组织名称,公用名,电子邮件对于ca.crt和client.crt值是不同的
ca.crt的通用名称是服务器IP
client.crt的通用名称是客户端IP
使用我们的CA证书签署客户端证书
openssl x509 -req -days 365 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt
转换为.p12,以便在OSX中导入
openssl pkcs12 -export -clcerts -inkey client.key -in client.crt -out client.p12 -name "MyKey"
删除了ca和客户端密钥的密码
openssl rsa -in ca.key -out newca.key
openssl rsa -in client.key -out newclient.key
我尝试将client.crt和client.p12上传到我的浏览器作为受信任的根证书颁发机构,但仍无效(同样的错误) .
有小费吗?