设置 ssl_engine 后 Web 服务器不重新启动

设置 ssl_engine 后 Web 服务器不重新启动

我正在尝试将 SSL 流程卸载到 AWS CloudHSM。在配置 Web 服务器时,当我添加以下内容时:

ssl_engine cloudhsm;

到 nginx 配置的顶部,nginx 不会重新启动,并且记录了以下错误:

2018/05/29 11:53:58 [emerg] 17509#0: ENGINE_by_id("cloudhsm") failed (SSL: error:25066067:DSO support routines:dlfcn_load:could not load the shared library:filename(/usr/lib/x86_64-linux-gnu/engines-1.1/cloudhsm.so): /usr/lib/x86_64-linux-gnu/engines-1.1/cloudhsm.so: cannot open shared object file: No such file or directory error:25070067:DSO support routines:DSO_load:could not load the shared library error:260B6084:engine routines:dynamic_load:dso not found error:2606A074:engine routines:ENGINE_by_id:no such engine:id=cloudhsm)

我该如何解决这个问题?

答案1

我遇到了同样的问题,并记录了调查结果和解决方案Github 问题

总而言之,如果您遵循了以下步骤:

那么你就正确配置了 CloudHSM,并且你可以用普通用户访问它,但启动的用户nginx不能访问它(这会导致你报告误导性错误)。请参阅上面的解决方案帖子,了解你可以运行的简单测试来验证情况确实如此。

解决方案是追踪服务器是如何启动的(参见这个答案找出您的系统使用的初始化系统),并确保 cloudhsm 凭证是该环境的一部分。AWS 的说明假设主机systemd作为初始化系统运行。在我的例子中,我使用的是init,解决方案涉及在启动之前跟踪相应的脚本并传递凭证(n3fips_passwordnginx。同样,具体细节记录在Github 线程

相关内容