alibaba / tengine

A distribution of Nginx with some advanced features

Home Page:https://tengine.taobao.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tengine指定ssl_certificate_key engine:name:id的处理问题

RothsDiao opened this issue · comments

目前,尝试采用ssl_certificate_key engine:name:id加载自行实现的engine实现私钥的签名和加密/解密,配置成功后,启动tengine提示,Engine_load_private_key()error,通过查看代码发现原因为Tengine源码\tengine-3.0.0.tar\tengine-3.0.0\src\event\ngx_event_openssl.c中1051行调用Engine_load_private_key函数前,需要首先调用Engine_init()进行 初始化,通过手工修改源码,并且重新编译后,可以实现使用自定的engine加载私钥并进行签名的流程,因此,建议这个地方进行修改和修复,而且Engine_init()后,是否需要调用Engine_finished()需要考虑。

ssl library默认 #ifndef OPENSSL_NO_ENGINE 会初始化 ENGINE_add_conf_module

void OPENSSL_load_builtin_modules(void)
{
/* Add builtin modules here */
ASN1_add_oid_module();
ASN1_add_stable_module();
#ifndef OPENSSL_NO_ENGINE
ENGINE_add_conf_module();
#endif
EVP_add_alg_module();
conf_add_ssl_module();
}

好的,明白了,需要在配置文件中先配置下