对这个问题的建议答案似乎不起作用。代码如下:
if cert ~= nil and key ~= nil then
-- clear the fallback certificates and private keys that are statically
-- set by the ssl_certificate and ssl_certificate_key in proxy.conf
-- directives
ngx.log(ngx.DEBUG, 'Clearing fallback certificates');
local ok, err = ssl.clear_certs()
if not ok then
ngx.log(ngx.ERR, "failed to clear existing (fallback) certificates")
return ngx.exit(ngx.ERROR)
end
ngx.log(ngx.DEBUG, 'Convert private key pem to DER format');
-- key already contains the private key as provided in token
local client_key, err = ssl.priv_key_pem_to_der(key);
if not client_key then
ngx.log(ngx.ERR, "failed to convert PEM priv key to DER: ", err)
return
end
ngx.log(ngx.DEBUG, 'Set private key DER');
ok, err = ssl.set_der_priv_key(client_key)
if not ok then
ngx.log(ngx.ERR, "failed to set DER priv key: ", err)
return
end
ngx.log(ngx.DEBUG, 'Convert certificate pem to DER format');
-- cert already contains the private key as provided in token
local client_cert, err = ssl.cert_pem_to_der(cert);
if not client_cert then
ngx.log(ngx.ERR, "failed to convert PEM cert to DER: ", err)
return
end
ngx.log(ngx.DEBUG, 'Set certificate DER');
ok, err = ssl.set_der_cert(client_cert)
if not ok then
ngx.log(ngx.ERR, "failed to set DER cert: ", err)
return
end
end
ngx.log(ngx.INFO, 'Passing request to: ', ngx.var.target)
输出:
2018/03/06 13:55:31 [debug] 31#0: *12 [lua] analytics_access.lua:270: Clearing fallback certificates
2018/03/06 13:55:31 [debug] 31#0: *12 [lua] analytics_access.lua:277: Convert private key pem to DER format
2018/03/06 13:55:31 [debug] 31#0: *12 [lua] analytics_access.lua:285: Set private key DER
2018/03/06 13:55:31 [debug] 31#0: *12 [lua] analytics_access.lua:292: Convert certificate pem to DER format
2018/03/06 13:55:31 [debug] 31#0: *12 [lua] analytics_access.lua:300: Set certificate DER
2018/03/06 13:55:31 [info] 31#0: *12 [lua] analytics_access.lua:309: Passing request to: https://blah blah...
在控制台上:
400 错误请求
未发送所需的 SSL 证书